这是简单的一个我用下列插入查询与PHP的MySQL插入查询问题
mysql_query(insert into table1 set saltval = 'Y'Z' where uid ='1');
,但我不becaues为字段saltval值工作Y'Z。我的问题是如何考虑这个值是作为一个字符串。
这是简单的一个我用下列插入查询与PHP的MySQL插入查询问题
mysql_query(insert into table1 set saltval = 'Y'Z' where uid ='1');
,但我不becaues为字段saltval值工作Y'Z。我的问题是如何考虑这个值是作为一个字符串。
您需要使用反斜杠转义任何单引号。
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
$string = mysql_real_escape_string("Y'Z");
mysql_query("insert into table1 set saltval = '{$string}' where uid ='1'");
始终使用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
你有一个反斜杠添加到某些字符使您的字符串适合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);
,使其安全和容错