更新表中显示错误的字段

时间:2013-04-30 06:41:23

标签: php mysql phpmyadmin

我有一个客户表我在一个表中我需要将客户的数据存储为文本a声明在db中varchar(1500)我正在尝试更新该字段时我会跟踪错误

您的SQL语法有错误;检查与您的MySQL服务器版本相对应的手册,以便在16世纪以来使用接近标准虚拟文本的正确语法,当时未知的打印机在第1行使用了galle'

field name is "comments1 varchar(1500);"

我的查询是

$sql="UPDATE customer SET comments1='".$comments1."' WHERE sno='$sno'";

如何解决......

5 个答案:

答案 0 :(得分:4)

在您的查询添加此代码之前

$comments1=mysql_real_escape_string($comments1);

< ----您的查询在这里--->

答案 1 :(得分:1)

根据错误消息:

  

...或从的标准虚拟文本附近使用的正确语法   
错误从这里开始^

可能您正在插入一个具有单引号的值(,它会破坏导致语法错误的SQL语句)。这是一个指示器,您在将值插入数据库之前尚未清理它们。有几种方法可以避免sql注入:

  • 使用PDO
  • 和另一个:MySQLi

有关详细信息,请浏览此链接。


你也可以使用mysql_real_escape_string但很快就会弃用

$var = mysql_real_escape_string($comments1);
$sql="UPDATE customer SET comments1='$var' WHERE sno='$sno'";

答案 2 :(得分:1)

您的注释变量包含使用addslashes函数转义它们所需的单引号。

试试这个

$sql="UPDATE customer SET comments1='".addslashes($comments1)."' WHERE sno='$sno'";

答案 3 :(得分:0)

您的列名称似乎为comments而不是comments1field name is "comments varchar(1500);"如此改变

$sql="UPDATE customer SET comments1='".$comments1."' WHERE sno='$sno'";

 $sql="UPDATE customer SET comments='".$comments1."' WHERE sno='$sno'";

答案 4 :(得分:0)

最好尝试使用此函数mysql_real_escape_string()