PHP PDO Syntax error or access violation: 1064 on insert
Encapsulate your field names in backticks (`
), desc
is a reserved word.
$sth = $this->getLink()->prepare( "INSERT INTO `boards` (`id`,`memberid`,`name`,`desc`,`datecreated`,`isactive`)
VALUES(?,?,?,?,?,?)" );
Error: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax. . Problem in the .env or PDO?
In your query you have an extra comma before FROM
Correct Query:
SELECT
e.id,
e.name,
e.description,
e.event_manager_id,
em.name as event_manager_name,
e.company_name,
DATE_FORMAT(datetime,'%d-%m-%Y') as date,
DATE_FORMAT(datetime,'%H:%i') as time,
e.maximum_amount_of_guests as guests
FROM event e
LEFT JOIN event_manager em ON (em.id = e.event_manager_id)
ORDER BY date DESC
Error in your query:
You have an issue here:
e.maximum_amount_of_guests as guests, // this will generate error
FROM event e
1064
clearly show you, you have an issue in your query not .env file.
Server Error Reference:
PDOException' Syntax error or access violation: 1064 You have an error in your SQL syntax; check
order
is a reserved keyword. You should add backticks `
around it to use it:
$query1 = "INSERT INTO `order` (order_details, order_address, cust_id, cust_name, delivery_type, paid)
VALUES(:details,:address,:d,:name,:delivery,:paid);";
$sql = $conn->prepare($query1);
See also : Keywords and Reserved Words
Warning: PDO::prepare(): SQLSTATE[42000]: Syntax error or access violation: 1064 when update
(Unfortunately) you can't use parameters for your tablename in your prepared statement. You can only use those for data literals. So UPDATE :surveytable
is invalid.
As per manual:
Parameter markers can represent a complete data literal only. Neither
part of literal, nor keyword, nor identifier, nor whatever arbitrary
query part can be bound using parameters.
When you (completely!!!) trust your source of $tablesnames
, use
'UPDATE `' . $tablesnames[i]` . '` SET `postrecords`=:newrecord WHERE `id`=:id'
instead
Fatal error: Uncaught PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax
SIGNAL
is a reserved word. It's best to avoid it, but you can use it if you wrap it in backticks.
$req = 'UPDATE Comments SET `signal` = TRUE WHERE idComments = :comment';
(MySQL reserved words)
SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error
SELECT id,pass,en_b_y,en_b_m,en_b_d,sqa1,sqa2,sqa3 FROM
appleid AS appleid1
WHERE num>=$head ORDER BY `TimeStamp`
DESC LIMIT $this->apple_id_num ;
put your limit after orderby
Related Topics
PHP Form Send Email to Multiple Recipients
What Is Pdo & Why Should I Use It
How to Access Route, Post, Get etc. Parameters in Zend Framework 2
PHP - Remove <Img> Tag from String
PHP Function to Delete All Between Certain Character(S) in String
Is Making Asynchronous Http Requests Possible with PHP
How to Remove Square Brackets and Anything Between Them with a Regex
How to Connect to Mssql Using Pdo Through PHP and Linux
Print Time in 15-Minute Increments Between Two Times in the Same Day
Custom User Authentication Base on the Response of an API Call
File_Get_Contents Behind a Proxy
How to Update/Edit a JSON File Using PHP
Dynamically Create PHP Object Based on String