php - 查询失败 SQLSTATE[42000] : Syntax error or access violation: 1064 You have an error in your SQL syntax

标签 php mysql

查询失败:

SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ':c2 , add=:c3 , mob=:c4 WHERE id=:c1' at line 1

我在这个程序中有一个语法错误,我无法更新数据库中的“cus”表。请任何人解决这个错误。

谢谢

我的 PHP 代码如下:

if(isset($_POST['submit']))
{
    $c1=$_POST['cid1'];
    $c2=$_POST['cname1'];
    $c3=$_POST['cadd1'];
    $c4=$_POST['cmob1'];

    $sql1 = "UPDATE 'cus' set 'name'=':c2' , 'add'=':c3' , 'mob'=':c4'  WHERE 'id'=':c1'";

    $st1=$conn->prepare($sql1);
    $st1->bindParam(":c2",$c2,PDO::PARAM_STR);
    $st1->bindParam(":c3",$c3,PDO::PARAM_STR);
    $st1->bindParam(":c4",$c4,PDO::PARAM_STR);
    $st1->bindParam(":c1",$c1,PDO::PARAM_INT);
    $st1->execute();
    header("location:frm.php");


}

最佳答案

您需要在表名和列名周围使用反引号,或者如果名称不是保留字,则完全不使用引号。单引号用于字符串。您也不得将占位符放在引号内。

$sql1 = "UPDATE `cus` set `name`=:c2 , `add`=:c3 , `mob`=:c4  WHERE `id`=:c1";

关于php - 查询失败 SQLSTATE[42000] : Syntax error or access violation: 1064 You have an error in your SQL syntax,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27740967/

相关文章:

php - 让 PHP 和 MySQL 博客将旧帖子移动到不同的页面?

mysql - 为什么dockerfile无法使用 “CMD/etc/init.d/mysql start ”启动数据库?

从 HTML <select> 中选择值时 Php 自动重新加载页面

php - PHP 中的散列。 SHA-256 如何工作?

php - 如果站点未显示在框架中则重定向

PHP:获取 Docker 容器中的容器 ID

php - MySQL/PHP/HTML 如何在分层下拉菜单中插入子项?

mysql - 无法在 MySQL 5.5 中执行外键(使用 XAMPP)

mysql - 当不存在具有 FielDB 值的记录时创建新记录

php - Yii/gii 代码生成器定制 : how to reuse the default templates?