-2

我可以使用

 //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”)附近使用正确的语法。

我该用什么?

4

1 回答 1

0

您必须避开撇号。使用参数化查询,或 mysql_real_escape 或其他一些可能性来解决您的问题。如果你做好你的工作,你也会保护自己免受SQL 注入

于 2013-10-12T18:06:11.457 回答