Php 您的SQL语法有错误;检查与您的MariaDB服务器相对应的手册&x27';文章';其中(`title`LI)
我的代码有这个问题 您的SQL语法有错误;请查看与您的MariaDB服务器版本对应的手册,以了解在第1行的“articles”(其中(`title`像'%EPA%')或(`text`像'%EPA%')附近使用的正确语法 这是我的代码:Php 您的SQL语法有错误;检查与您的MariaDB服务器相对应的手册&x27';文章';其中(`title`LI),php,mysql,Php,Mysql,我的代码有这个问题 您的SQL语法有错误;请查看与您的MariaDB服务器版本对应的手册,以了解在第1行的“articles”(其中(`title`像'%EPA%')或(`text`像'%EPA%')附近使用的正确语法 这是我的代码: $raw_results = mysqli_query($conn, "SELECT * FROM 'articles' WHERE (`title` LIKE '%".$query."%') OR (`text` LIKE '%".$q
$raw_results = mysqli_query($conn, "SELECT * FROM 'articles'
WHERE (`title` LIKE '%".$query."%') OR (`text` LIKE '%".$query."%')") or die(mysqli_error($conn));
该错误的直接原因可能是您将表名
articles
放在单引号中。我们可以解决这个问题,然后继续,但现在是了解预处理语句的好时机,预处理语句可以解决代码中的另一个问题。查询字符串的另一个主要问题是您正在通过字符串concaten进行构建这可能会导致来自外部的人可能会注入恶意的SQL片段,以便运行可能不希望运行的命令。请考虑代码的更新版本:
$query = '%'.$query.'%';
$stmt = $mysqli->prepare("SELECT * FROM articles WHERE title LIKE ? OR text LIKE ?");
$stmt->bind_param("ss", $query, $query);
$stmt->execute();
$raw_results = $stmt->get_result();
该错误的直接原因可能是您将表名
articles
放在单引号中。我们可以解决这个问题,然后继续,但现在是了解预处理语句的好时机,预处理语句可以解决代码中的另一个问题。查询字符串的另一个主要问题是您正在通过字符串concaten进行构建这可能会导致来自外部的人可能会注入恶意的SQL片段,以便运行可能不希望运行的命令。请考虑代码的更新版本:
$query = '%'.$query.'%';
$stmt = $mysqli->prepare("SELECT * FROM articles WHERE title LIKE ? OR text LIKE ?");
$stmt->bind_param("ss", $query, $query);
$stmt->execute();
$raw_results = $stmt->get_result();
请告诉我们最终的查询,而不是构建它的代码。警告:你对SQL注入很脆弱。攻击者能够轻易地对你的数据库运行任意命令。你应该强烈地考虑使用和参数化查询。你可以使用PDO或MySQLI来做这件事。告诉我们最终的查询。而不是构建它的代码。警告:你是。攻击者能够轻松地运行对数据库的任意命令。您应该强烈考虑使用和参数化查询。您可以使用PDO或MySQLI这样做。