这是一个简单的我正在使用以下插入查询
mysql_query(insert into table1 set saltval = 'Y'Z' where uid ='1');
但我不工作因为字段saltval的值是Y'Z。我的问题是如何将此值视为字符串。
答案 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);
使其安全且容错