用php mysql插入查询问题

时间:2011-02-12 12:30:38

标签: php mysql

这是一个简单的我正在使用以下插入查询

mysql_query(insert into table1 set saltval = 'Y'Z' where uid ='1');

但我不工作因为字段saltval的值是Y'Z。我的问题是如何将此值视为字符串。

4 个答案:

答案 0 :(得分:5)

您需要使用反斜杠转义任何单引号。

mysql_query("insert into table1 set saltval = 'Y\'Z' where uid ='1'");

但是你的SQL也是无效的...你的意思是做更新吗?插入语句没有where。

如其他答案中所述,如果输入来自用户,则应使用mysql_real_escape_string()
 http://www.php.net/manual/en/function.mysql-real-escape-string.php

答案 1 :(得分:2)

$string = mysql_real_escape_string("Y'Z");
mysql_query("insert into table1 set saltval = '{$string}' where uid ='1'");

答案 2 :(得分:2)

如果值来自用户输入

,请始终使用mysql_real_escape_string()函数
$query="insert into table1 set saltval = '".mysql_real_escape_string($InputVal)."' where uid ='1'";

请参阅http://php.net/manual/en/function.mysql-real-escape-string.php

答案 3 :(得分:1)

您必须为某些字符添加反斜杠,以使字符串符合SQL语法规则 假设您正在动态创建查询,PHP具有特殊的转义功能,您应该将其用于查询中的每个引用字符串,没有例外。
所以,写下你的代码:

$salt = "Y'Z";
$id   = 1;

$salt = mysql_real_escape_string($salt);
$id   = mysql_real_escape_string($id);

$sql = "update table1 set saltval = '$salt' where uid ='$id'";

mysql_query($sql) or trigger_error(mysql_error()." ".$sql);

使其安全且容错