Php 无法将带单引号的字符串插入MySQL数据库

Php 无法将带单引号的字符串插入MySQL数据库,php,quote,Php,Quote,我试图在mysql数据库中插入一个字符串“您最喜欢的叔叔的名字是什么?”并收到错误消息: 提交您的请求时出错。您的SQL语法有错误;请查看与您的MySQL服务器版本相对应的手册,以了解在“您最喜欢的叔叔的名字”附近使用的正确语法,mobile_no='+4479094484999',country'第4行“* 我的代码是: $sec_ques2 = mysql_real_escape_string($sec_ques); $insert = "INSERT INTO customers SE

我试图在mysql数据库中插入一个字符串“您最喜欢的叔叔的名字是什么?”并收到错误消息:

提交您的请求时出错。您的SQL语法有错误;请查看与您的MySQL服务器版本相对应的手册,以了解在“您最喜欢的叔叔的名字”附近使用的正确语法,mobile_no='+4479094484999',country'第4行“*

我的代码是:

 $sec_ques2 = mysql_real_escape_string($sec_ques);
 $insert = "INSERT INTO customers SET 
 acc_status = 'Inactive',
 acc_type = '{$acc_type}',
 sec_question = '{$sec_ques2}',
 mobile_no = '{$m_number}',
 country =    '{$country}',
 passkey = '{$passkey}',
 sec_ans= '{$answer}',
 home_address= '{$h_address}',
 gender = '{$gender}',
 first_name = '{$f_name}',
 last_name= '{$l_name}',
 emp_status = '{$emp_status}',
 marital_status = '{$m_status}',
 email_address = '{$email}'";

嗯,问题可能是您在INSERT查询中使用了UPDATE(基本上应该可以)语法

此外,mysql_real_escape_string()函数的输出仍然是一个字符串,因此应该仍然用两个单引号括起来

你为什么不试试这样的东西:

$sec_ques = mysql_real_escape_string($sec_ques);
$insert = "INSERT INTO accounts(field1, filed2, field3) 
VALUES('{$status}', '{$acc_type}', '{$sec_ques}')";

如果这也不起作用,也许您应该迁移到更安全、更舒适的using中。

好吧,问题可能是您在INSERT查询中使用了更新(基本上应该起作用)语法

此外,mysql_real_escape_string()函数的输出仍然是一个字符串,因此应该仍然用两个单引号括起来

你为什么不试试这样的东西:

$sec_ques = mysql_real_escape_string($sec_ques);
$insert = "INSERT INTO accounts(field1, filed2, field3) 
VALUES('{$status}', '{$acc_type}', '{$sec_ques}')";

如果这也不起作用,也许您应该迁移到更安全、更舒适的使用中。

尝试使用DBMS转义函数(如)或其等效函数转义查询参数。这是完整的查询吗?不仅仅是部分查询。尝试了secquestion=mysqli\u real\u escape\u字符串($secques),但仍然没有working@user2640405:请发布完整查询。$insert=“insert INTO acc_status='Inactive',acc_type='{$acc_type}',sec_QUEST=mysqli_real_escape_string($sec_ques),mobile_no='{$m_number}',country='{$country}“、密码={$passkey}”、密码={$answer}、家庭住址={$h_address}、性别={$gender}、名字={$f_name}、姓氏={$l_name}、就业状况={$emp_status}、婚姻状况={$m_status}、电子邮件地址={$email}”;尝试使用DBMS转义函数(如)或其等效函数转义查询参数。这是完整的查询吗?不仅仅是部分查询。尝试了secquestion=mysqli\u real\u escape\u字符串($secques),但仍然没有working@user2640405:请发布完整查询。$insert=“insert INTO acc_status='Inactive',acc_type='{$acc_type}',sec_QUEST=mysqli_real_escape_string($sec_ques),mobile_no='{$m_number}',country='{$country}“、密码={$passkey}”、密码={$answer}、家庭住址={$h_address}、性别={$gender}、名字={$f_name}、姓氏={$l_name}、就业状况={$emp_status}、婚姻状况={$m_status}、电子邮件地址={$email}”;谢谢男人们。。正在工作。。我使用了$sec_ques2=mysql_real_escape_字符串($sec_ques);。然后用sec_question={$sec_ques2}插入,谢谢各位。。正在工作。。我使用了$sec_ques2=mysql_real_escape_字符串($sec_ques);。然后用sec_question='{$sec_ques2}'插入它,