我有一个客户表我在一个表中我需要将客户的数据存储为文本a声明在db中varchar(1500)我正在尝试更新该字段时我会跟踪错误
您的SQL语法有错误;检查与您的MySQL服务器版本相对应的手册,以便在16世纪以来使用接近标准虚拟文本的正确语法,当时未知的打印机在第1行使用了galle'
field name is "comments1 varchar(1500);"
我的查询是
$sql="UPDATE customer SET comments1='".$comments1."' WHERE sno='$sno'";
如何解决......
答案 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
而不是comments1
。 field 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()