我的查询中存在一些问题。
$test = "Don't look at me";
mysqli_query("INSERT INTO testtable SET testfield = '".$test."' ");
请注意字符串上有一个引号。当我执行它时,它会返回一个错误,如
您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,以便使用“*看看我...”左右使用的正确语法。如果我删除字符串中的单引号,它可以正常工作。那么如何在不删除单引号的情况下将字符串保存到数据库中呢?
答案 0 :(得分:0)
你需要正确地逃避它们 -
$test = "Don\'t look at me";
或使用aadslashes()
"INSERT INTO testtable SET testfield = '" .addslashes($test). "'"
答案 1 :(得分:0)
您可以使用mysqli_real_escape_string()
。它可以保护并使用sql injection
阻止您的查询。也是table name
column name
和backtick
$test = "Don't look at me";
$val=mysqli_real_escape_string($con,$test); //here you can pass your connection variable
mysqli_query("INSERT INTO `testtable` SET `testfield` = '".$val."' ");
阅读Documemt mysql_real_escape_string()
答案 2 :(得分:0)
或者您可以使用
mysqli_real_escape_string(connection,escapestring)
mysqli_real_escape_string()函数转义字符串中的特殊字符,以便在SQL语句中使用。
答案 3 :(得分:0)