Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用PDO命令插入数据库_Php_Mysql_Pdo - Fatal编程技术网

Php 使用PDO命令插入数据库

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

我正在学习PDO命令,并一直遵循这些示例

下面的查询适用于SELECT命令,但不适用于INSERT命令。我看不出INSERT命令有什么问题。我收到的错误是“未捕获异常(PDOException),带有消息SQLSTATE[42000]:语法错误或访问冲突:1064您的SQL语法有错误”

$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,无需担心!您应该在问题中保留有错误的版本,这样其他用户也可以查看问题。