单词包含单引号时无法插入

时间:2014-03-03 07:37:20

标签: php mysql

我想在PHP MYSQL中添加单引号词,如“Dwi'q”和“Jum'at”, 但我无法添加这个词,我尝试搜索任何东西,但我没有找到它。

我的查询是:

$query=mysql_query("INSERT INTO `pln`(`ppno`,`persno`,`pernum`,`psgrup`,`lv`,`pos`,`nppsimkp`,`persub`,`busrea`,`pdthr`,`gk`,`marstakey`,`bkey`,`bakun`,`numtd`,`email`,`bdate`) VALUES ('".$ppno."','".$persno."','".$pernum."','".$psgrup."','".$lv."','".$pos."','".$nppsimkp."','".$persub."','".$busrea."','".$pdthr."','".$gk."','".$marstakey."','".$bkey."','".$bakun."','".$numtd."','".$email."','".$bdate."')") or die(mysql_error());

感谢您的帮助。

3 个答案:

答案 0 :(得分:0)

要使用'插入值,您需要使用mysqli_real_escape_stringmysql_real_escape_string。最好在将值插入DB时始终使用以避免SQL注入。

还有一件事请停止使用mysql_*个功能并开始使用mysqli_*功能或PDO

示例

使用mysql_real_escape_string

$a = "some one's text";
$a = mysql_real_escape_string($a);

使用mysqli_real_escape_string

$con = mysqli_connect("localhost","dbusername","dbpassword","dbname");
$a = "some one's text";
$a = mysqli_real_escape_string($con,$a);

答案 1 :(得分:0)

简单..你可以用反斜杠来逃避..

$search_keyword="jum\'at";

但是我建议你在将值传递给查询之前首先清理它。使用名为

的php函数
mysql_real_escape_string($search_keyword) 

for ex;

$search_keyword=mysql_real_escape_string("jum'at");

答案 2 :(得分:0)

首先这样做:

$a = mysql_real_escape_string("Dwi'q");
$b = mysql_real_escape_string("Jum'at");

然后运行查询,在查询中提供这些变量。