Php 使用PDO命令插入数据库
我正在学习PDO命令,并一直遵循这些示例 下面的查询适用于SELECT命令,但不适用于INSERT命令。我看不出INSERT命令有什么问题。我收到的错误是“未捕获异常(PDOException),带有消息SQLSTATE[42000]:语法错误或访问冲突:1064您的SQL语法有错误”Php 使用PDO命令插入数据库,php,mysql,pdo,Php,Mysql,Pdo,我正在学习PDO命令,并一直遵循这些示例 下面的查询适用于SELECT命令,但不适用于INSERT命令。我看不出INSERT命令有什么问题。我收到的错误是“未捕获异常(PDOException),带有消息SQLSTATE[42000]:语法错误或访问冲突:1064您的SQL语法有错误” $descr='1M18'; Require('connect_db.php'); //SELECT COMMAND $stmt=$mysql_link->prepare("SELE
$descr='1M18';
Require('connect_db.php');
//SELECT COMMAND
$stmt=$mysql_link->prepare("SELECT descr,area_id FROM berthmove WHERE descr=:descr");
$stmt->execute(array(':descr'=>$descr));
foreach($stmt->fetchAll(PDO::FETCH_ASSOC) as $row) {
echo $row['descr'];
echo $row['area_id'];
}
//INSERT COMMAND
$msg_type_berth='Hello';
$railinfo2=$mysql_link->prepare("INSERT INTO berthmove ('msg_type_berth') VALUES(:msg_type_berth)");
$railinfo2->execute(array(':msg_type_berth'=>$msg_type_berth));
$mysql_link=null;
可能是列名周围的单引号导致错误,请尝试使用:
$railinfo2 = $mysql_link->prepare('INSERT INTO berthmove (msg_type_berth) VALUES(:msg_type_berth)');
看看你的帖子。查看代码中大量的空白。不要只是从编辑器中复制粘贴,在点击提交之前,一定要预览你的文章,确保它看起来正确。(特别注意,代码块基于4个空格。不要添加更多的前导空格,或者您只是创建了一个巨大的不必要的滚动块)您是否尝试使用CLI工具(
>MySQL-u..-p..-h..yourdbname
)连接到MySQL,然后尝试复制粘贴您的查询以查看其内容?当我尝试粘贴其中的问题行时,会显示错误1064(42000):您的SQL语法中有错误。不要编辑您的问题以使其不再有错误的代码:其他发现此问题的人不会从中受益。将问题保留为代码有误,将答案标记为正确,所有人都会赢。@user2635961,无需担心!您应该在问题中保留有错误的版本,这样其他用户也可以查看问题。