这个问题在这里已有答案:
直升机 . 我无法执行以下INSERT INTO查询 . SELECT工作正常 . 哪里出错了?
PHP回复此错误消息:
错误:SQLSTATE [42000]:语法错误或访问冲突:1064您的SQL语法中有错误;检查与MySQL服务器版本对应的手册,以便在''id','reg_date','szoveg'附近使用正确的语法 . )第1行的VALUES(NULL,CURDATE(),'x')'
$servername = "localhost";
$username = "root";
$password = "pass";
$dbname = "db";
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $conn->prepare("SELECT * FROM Notes");
$stmt->execute();
$result = $stmt->setFetchMode(PDO::FETCH_ASSOC);
if(isset($_POST["szoveg"])){
$query = "INSERT INTO Notes ('id', 'reg_date', 'szoveg') VALUES (NULL, CURDATE(), '".$_POST["szoveg"]."')";
$stmt = $conn->prepare($query);
$stmt->execute();
}
2 回答
单引号(
'
)表示SQL中的sting文字 . 要引用标识符,例如列名,您应该使用简单的单词:强制性评论:
使用字符串连接生成SQL语句会使您的代码容易受到SQL注入攻击 . 您应该考虑使用prepareds statement .
不应引用您的表格列 .