php mysql的插入查询问题
这是一个简单的问题,我正在使用下面的插入查询php mysql的插入查询问题,php,mysql,Php,Mysql,这是一个简单的问题,我正在使用下面的插入查询 mysql_query(insert into table1 set saltval = 'Y'Z' where uid ='1'); 但是我不工作,因为saltval字段的值是Y'Z。我的问题是如何将此值视为字符串 您需要用反斜杠转义任何单引号 mysql_query("insert into table1 set saltval = 'Y\'Z' where uid ='1'"); 但是,您的SQL也是无效的。。。你的意思是更新吗?Inser
mysql_query(insert into table1 set saltval = 'Y'Z' where uid ='1');
但是我不工作,因为saltval字段的值是Y'Z。我的问题是如何将此值视为字符串 您需要用反斜杠转义任何单引号
mysql_query("insert into table1 set saltval = 'Y\'Z' where uid ='1'");
但是,您的SQL也是无效的。。。你的意思是更新吗?Insert语句没有where
如其他答案所述,如果输入来自用户,则应使用mysql\u real\u escape\u string()
如果值来自用户输入,则始终使用
mysql\u real\u escape\u string()
函数执行此操作
$query="insert into table1 set saltval = '".mysql_real_escape_string($InputVal)."' where uid ='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);
使其安全和容错
$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);