![](/img/trans.png)
[英]SQLSTATE[42000]: Syntax error or access violation: 1064 PHP/MySQL
[英]Error: SQLSTATE[42000]: Syntax error or access violation: 1064 - PHP MYSQL
我了解这是先前询问的问题的重复。 但是,我遵循了先前的答案,但仍然没有结果。
我正在使用一条准备好的语句,以使用方法post从html <form>
进行评论。 会话中的注释以及唯一ID将传递到页面addComment.php
这是“ addComment.php”的内容
<?php
session_start();
$servername = "localhost";
$username = "root";
$password = "root";
$dbname = "somedatabase";
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
// set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// prepare sql and bind parameters
$stmt = $conn->prepare("INSERT INTO patients( comments ) VALUES ( :comment ) WHERE unique_id = :unique_id");
$stmt->bindParam( ':comment', $comment );
$stmt->bindParam( ':unique_id', $unique_id );
$comment = $_POST[ 'comment' ];
$unique_id = $_SESSION[ 'unique_id' ];
$stmt->execute();
//header('Location: newMedicine.php');
}
catch(PDOException $e){
echo "Error: " . $e->getMessage();
}
$conn = null;
?>
我已经回声了
$comment = $_POST[ 'comment' ];
$unique_id = $_SESSION[ 'unique_id' ];
并且它们都可以正常打印。
我得到的错误是
错误:SQLSTATE [42000]:语法错误或访问冲突:1064您的SQL语法有错误。 在第13行的'WHERE unique_id ='JohnDoe20RG2018-01-23 11:43:'附近检查与您的MySQL服务器版本相对应的手册以使用正确的语法
数据库中patients table
中的unique_id
字段具有相同的值
JohnDoe20RG2018-01-23 11:43:17
我看不到我要去哪里错了。 我在整个项目中都使用了多个带有Selects和Inserts的准备好的语句,它们都可以正常工作。
任何帮助,将不胜感激。
如果您要使用ID和注释创建新记录,请使用...
$stmt = $conn->prepare("INSERT INTO patients ( unique_id, comments )
VALUES ( :unique_id, :comment ) ");
如果是现有记录-
$stmt = $conn->prepare("UPDATE patients SET comments=:comment
WHERE unique_id = :unique_id");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.