我可以使用。将包含撇号的值插入到MySql数据库中
//will try to insert the word //test'testa
$escapedWord = $mysqli->real_escape_string($word);
$queryInsert = "INSERT INTO myTable (theWord) VALUES ('$escapedWord')";
这个词被插入数据库,如下所示:test'testa(我手动检查)
但是,在尝试从数据库中检索相同的值时,我收到以下错误:
我正在使用的查询如下:
$ query =“SELECT * FROM myTable where id ='$ id'”;
$ result = $ mysqli - > query($ query)或die($ mysqli - > error.LINE);
您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以便在第235行插入错误的“testa”,“1388490898000”附近使用正确的语法。
我该怎么用?
你必须逃避撇号。使用parameterized queries或mysql_real_escape或其他一些可能性来解决您的问题。如果你的工作做得好,你也会保护自己免受SQL injections的伤害。