I have a little PHP script which just needs to get all the rows from a table in a SQLite database.  The name of the table is always something like 174597131028398082-199534472775860224.   This name is composed from two variables (sid and cid) which are defined through the parameters of a GET request. The problem is that instead of returning all the rows (which I would display later in the script), I get this error : SQLSTATE[HY000]: General error: 1 no such table: :sid-:cid.  It seems like PHP does not replace :sid and :cid with the correct values. I've seen  about a similar problem, but I still can't get it working.  Here's my code :  $query = "SELECT * FROM `:sid-:cid`;";  $queryparams = array(     ':sid' =&gt; $_GET['sid'],     ':cid' =&gt; $_GET['cid'] );  try {   $stmt = $db-&gt;prepare($query);   $result = $stmt-&gt;execute($queryparams); } catch(PDOException $ex) {   die($ex-&gt;getMessage()); }   Also, here is how I connect to the database :  try {   $db = new PDO("sqlite:scores.db");   $db-&gt;setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);   $db-&gt;setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);   $db-&gt;setAttribute(PDO::ATTR_EMULATE_PREPARES, false); } catch(PDOException $ex) {   die($ex-&gt;getMessage()); }
213
Why can't I pass the table name to a prepared PDO statement?  $stmt = $dbh-&gt;prepare('SELECT * FROM :table WHERE 1'); if ($stmt-&gt;execute(array(':table' =&gt; 'users'))) {     var_dump($stmt-&gt;fetchAll()); }   Is there another safe way to insert a table name into a SQL query? With safe, I mean that I don't want to do  $sql = "SELECT * FROM $table WHERE 1"
3825
I am simply trying to return the rows from a table in my db but i keep getting this error thrown back at me no matter what I do "Fatal error: Unsupported operand types in C:\xampp\htdocs\d7\includes\form.inc on line 1009". Am I missing a argument or something?  This is my function  Hook menu  function auto_form_menu() { $items = array(); $items['admin/config/auto_form'] = array(     'title' =&gt; 'My Module',     'description' =&gt; 'description',     'page callback' =&gt; 'drupal_get_form',     'page arguments' =&gt; array('auto_form_records'),     'access arguments' =&gt; array('administer site configuration'),     'file' =&gt; 'auto_form.admin.inc' );  $items['admin/config/auto_form/manage'] = array(     'title' =&gt; 'My Module',     'type' =&gt; MENU_DEFAULT_LOCAL_TASK,     'description' =&gt; 'description',     'weight' =&gt; -10, ); return $items; }   'auto_form.admin.inc'  function auto_form_records() {   $header = array('First Name', 'Last Name');    $dbresult = db_query("SELECT first, last FROM {auto}");      $rows = array();     foreach ($dbresult as $dbrow) {         $rows[] = array(         $dbrow-&gt;first,         $dbrow-&gt;last       );     }     return $output = theme('table', array('header' =&gt; $header, 'rows' =&gt; $rows)); }   Updated Code:  Any help is appreciated seeing how I am completely lost on figuring this out.
40449
I'm creating an installation script for an application that I'm developing and need to create databases dynamically from within PHP. I've got it to create the database but now I need to load in several .sql files. I had planned to open the file and mysql_query it a line at a time - until I looked at the schema files and realised they aren't just one query per line.  So, how do I load an sql file from within PHP (as phpMyAdmin does with its import command)?
112390
Is there a list describing all of the data_type parameters you can use in PDOStatement::bindParam() ? If none, what do you commonly use, and for what type of field ?  According to PHP manual: data_type Explicit data type for the parameter using the PDO::PARAM_* constants.   I know about the PDO::PARAM_INT and PDO::PARAM_STR . I've heard of PDO::PARAM_LOB but I wasn't sure how and when to use that, though. (for date ?)
5230
Here's my attempt at it:  $query = $database-&gt;prepare('SELECT * FROM table WHERE column LIKE "?%"');  $query-&gt;execute(array('value'));  while ($results = $query-&gt;fetch())  {     echo $results['column']; }
31406
I am planning to replace repeatedly executed Statement objects with PreparedStatement objects to improve performance. I am using arguments like the MySQL function now(), and string variables.   Most of the PreparedStatement queries I have seen contained constant values (like 10, and strings like "New York") as arguments used for the ? in the queries. How would I go about using functions like now(), and variables as arguments? Is it necessary to use the ?s in the queries instead of actual values? I am quite confounded.
10256
How do I use the json_encode() function with MySQL query results? Do I need to iterate through the rows or can I just apply it to the entire results object?
21375
I want to write a select statement that with some fixed columns and dynamic columns. here Dynamic Columns names are the rows in another table.  I have tried this but getting error. Please tell me where my error is  set @sql=(Select subject from tbl_subjects where C_Id=22); SELECT      ta.rollno,     ta.StdNm,     tc.C_Name,     @sql FROM     tbl_cmarks tm,     tbl_admission ta,     tbl_classes tc WHERE     tm.Cid = tc.C_Id         AND ta.rollno = tm.rollno         AND tm.Cid = 22 and tm.Examid=9    Mysql showing:     Error Code: 1242. Subquery returns more than 1 row   Could any one tell me how to do this in mysql?
111744
Say I have a table called User_FriendList, which has the following characteristics:  CREATE TABLE User_FriendList (     ID ...,     User_ID...,     FriendList_IDs...,     CONSTRAINT User_Friendlist_PK PRIMARY KEY (ID) );   And let us suppose that said table holds the following data:    +----+---------+---------------------------+  | ID | User_ID | Friendlist_IDs            |  +----+---------+---------------------------+  | 1  | 102     | 2:15:66:35:26:17:         |  +----+---------+---------------------------+  | 2  | 114     | 1:12:63:33:24:16:102      |  +----+---------+---------------------------+  | 3  | 117     | 6:24:52:61:23:90:97:118   |  +----+---------+---------------------------+   Note: The “:” (colon) is the delimiter when exploding in PHP into an array.  Questions  So:   Is this a convenient way to “store” the IDs of a FriendList? Or, instead, should I have individual rows with only one single FriendId value in each of them and, when I need to retrieve all the rows of a given list, simply perform a query like SELECT * FROM UserFriendList WHERE UserId = 1?
79591
I'm quite new to querying databases, I've only been doing it for about 2 weeks in the current job that I'm in and have never touched SQL prior to this.   I'm working on trying to use alias names to pull two different sets of tables and display the fields in each table, all while ordering them by a specific field.  Here is the code I'm currently trying to use when to do that:    SELECT ars.facility_id, ars.service_code, ars.coding_system,    ars.result_label_seq, ars.display_seq, ats.facility_id,    ats.service_code, ats.coding_system, ats.display_name, ats.test_name    FROM anc_test_codes AS ats,   anc_results_seqs AS ars    WHERE ats.service_code = ars.service_code   AND ars.coding_system = ats.coding_system   AND ars.facility_id = ats.facility_id    AND ats.facility_id = 'C' AND ats.service_code = 'CBC'   ORDER BY ats.display_name   I'm sure my methods and style is totally hideous, so excuse this.  The error I'm getting is a generic Oracle SQL error: SQL Command Not Properly Ended - ORA-00933  Can anyone tell me what I'm doing wrong? Any help on this would be greatly appreciated.    Thanks!
114332
I have the problem, that PHP replaces all spaces with underscores in POST and GET variables. For example if I have the URL: http://localhost/proxy.php?user name=Max the browser will convert it to http://localhost/proxy.php?user%20name=Max. But if I give the $_GET parameters out, the key is not user name but user_name (note the underscore)! Is there any possibility to change this behaviour?
88467
We have a question related to a DB query :   CREATE TABLE `Action` (   `id` int(10) unsigned NOT NULL AUTO_INCREMENT,   `emp_Id` int(10) unsigned NOT NULL,   `name` varchar(60) NOT NULL,   `updated_action_at` datetime(3) DEFAULT NULL,   `created_At` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,   `notes` varchar(400) DEFAULT NULL,   PRIMARY KEY (`id`),    KEY `action_empId_fk` (`emp_Id`),    CONSTRAINT `action_empId_fk` FOREIGN KEY (`emp_Id`) REFERENCES `Employee` (`id`) ON DELETE CASCADE,  ) ENGINE=InnoDB AUTO_INCREMENT=502004 DEFAULT CHARSET=latin1   CREATE TABLE `ActionAssignedTo` (   `action_Id` int(10) unsigned DEFAULT NULL,   `emp_Id` int(10) unsigned DEFAULT NULL,   KEY `actionassignedto_emp_id_foreign` (`emp_Id`),   KEY `actionassignedto_action_id_foreign` (`action_Id`),   CONSTRAINT `ActionAssignedTo_ibfk_1` FOREIGN KEY (`emp_Id`) REFERENCES `Employee` (`id`) ON DELETE CASCADE,   CONSTRAINT `ActionAssignedTo_ibfk_2` FOREIGN KEY (`action_Id`) REFERENCES `Action` (`id`) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=latin1  CREATE TABLE `Employee` (   `id` int(10) unsigned NOT NULL AUTO_INCREMENT,   `vendor_Id` int(10) unsigned DEFAULT NULL,   `name` varchar(40) NOT NULL,   `mobile_Number` varchar(15) NOT NULL,   `active` tinyint(1) DEFAULT '1',   `updated_At` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,   `created_At` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,   PRIMARY KEY (`id`),   KEY `employee_vendor_id_foreign` (`vendor_Id`),   CONSTRAINT `employee_vendor_id_foreign` FOREIGN KEY (`vendor_Id`) REFERENCES `Vendor` (`vendor_Id`) ) ENGINE=InnoDB AUTO_INCREMENT=511 DEFAULT CHARSET=latin1   We want to find the action created by employee with Action.empId = 4 along with the list of Assignee (an action can be assigned to multiple people)  We have the following query :   Select     notes,             Action.id,             AssigneeName.name,             ActionAssignedTo.emp_Id  from       Employee inner join Action  on         (Action.emp_Id = Employee.id  and        Action.emp_Id in (select Employee.id                               from Employee                               where Employee.vendor_Id = 1)) inner      join ActionAssignedTo  on         Action.id =  ActionAssignedTo.action_Id inner join Employee as AssigneeName  on         ActionAssignedTo.emp_Id =  AssigneeName.id where      Action.emp_Id = 4   Now, lets say if Action with id = 10 was assigned to 2 people : John (empId : 2) And Jack (empId : 5) --> the above query returns following results :  (columns from the query)  notes                       | Action.id | AssigneeName.name | ActionAssignedTo.emp_Id 1. Finish Designing Queries | 10        | John              | 2 2. Finish Designing Queries | 10        | Jack              | 5   If we observe the above results the first 2 columns get repeated for the Assignees for SAME ACTION ID  --> is there a way we can merge them something like   1. Finish Designing Queries |10         | { John : 2  , Jack  : 5}   Basically records being merged into one.
73
If user input is inserted without modification into an SQL query, then the application becomes vulnerable to , like in the following example:  $unsafe_variable = $_POST['user_input'];   mysql_query("INSERT INTO `table` (`column`) VALUES ('$unsafe_variable')");   That's because the user can input something like value'); DROP TABLE table;--, and the query becomes:  INSERT INTO `table` (`column`) VALUES('value'); DROP TABLE table;--')   What can be done to prevent this from happening?
120775
I have the following code and while get_the_ID() works, $post->ID does not, why?      $the_query = new WP_Query( array(         'post_type' =&gt; 'custompost',     ) );      while ( $the_query-&gt;have_posts() ) : $the_query-&gt;the_post();         echo $post-&gt;ID;     endwhile;
110550
For a new project that I'm doing in PHP I've created an SQLMethods class to connect to the database and perform queries. Tonight was the first night that I actually got to test it (I wrote it a week or so ago and forgot about it) and an unexpected error occured: When it was calling my ExecuteQuery() function, it wouldn't use the database I selected in the constructor.  The constructor:      public function SQLMethods() {         $SQLConnection = mysql_connect($SQLDBAddress, $SQLUserName, $SQLPassword);          if (!$SQLConnection) {             die('Could not connect: ' . mysql_error());         }          mysql_select_db($SQLDB, $SQLConnection);     }   The function in question:      public function ExecuteQuery($Query) {         mysql_query($Query, $SQLConnection) or die('Could not perform query: ' . mysql_error());     }   Does anyone see what the issue might be? Does the connection close after the constructor completes?
78016
For the last couple of days I've been getting the following error:     Fatal error: Undefined class constant 'MYSQL_ATTR_USE_BUFFERED_QUERY' in /home/mydomain/public_html/drupal/includes/database/mysql/database.inc on line 46   This comes after my Hosting did an upgrade and PHP is now version 5.2.17.  From what they have told me, I think I have to enable a PDO MySQL extension in php.ini.  The problem is I'm on a shared hosting and I don't have access to the file; also, my Hosting said they can't change it either.  My info.php shows:     PDO      PDO support enabled      PDO drivers sqlite, sqlite2        pdo_sqlite      PDO Driver for SQLite 3.x enabled      PECL Module version (bundled) 1.0.1 $Id: pdo_sqlite.c 293036 2010-01-03 09:23:27Z   sebastian $      SQLite Library 3.3.7     I tried modifying the .htaccess file and/or adding my own php.ini file to the root directory per some suggestions I found, but nothing I've tried has worked yet.  Can anyone please suggest what else I could do?  EDIT:  Once again I asked the Hosting to enable PDO_MySQL extension and their answer was that they could not, that cPanel (to which they migrated from Plesk, causing this whole problem) had this extension disabled by default and changing it would affect their servers.  Their solution?  That I would change my programming to adjust to these new features, which I wouldn't even know how to go about.  Are they right requesting that I do this? Is there any other way?
123088
I am writing a SQL query creator using some parameters. In Java, it's very easy to detect the last element of an array from inside the for loop by just checking the current array position with the array length.  for(int i=0; i&lt; arr.length;i++){      boolean isLastElem = i== (arr.length -1) ? true : false;         }   In PHP they have non-integer indexes to access arrays. So you must iterate over an array using a foreach loop. This becomes problematic when you need to take some decision (in my case to append or/and parameter while building query).   I am sure there must be some standard way of doing this.   How do you solve this in PHP?