我知道之前有人问过这个问题,但我希望有人可以帮助我解决我这里的特定实例(现在是凌晨 5:30,明天到期。我已经到了最后一根绳子)。这是我的代码:
error_reporting(E_ALL); ini_set('display_errors', 1);
$db = new mysqli('localhost', 'Brendan', 'password', 'Library');
if($db->connect_errno > 0){
die('Unable to connect to database [' . $db->connect_error . ']');
}
$title = $_GET["title"];
$sql = "SELECT * FROM `BOOK` WHERE `TITLE` like " . $title . " JOIN MANAGES
ON BOOK.SERIAL_NUM = MANAGES.SERIAL_NUMBER JOIN LIBRARIAN
ON MANAGES.ID_NUMBER = LIBRARIAN.ID_NUMBER";
if(!$result = $db->query($sql)){
die('There was an error running the query [' . $db->error . ']');
}
while($row = $result->fetch_assoc()){
echo $row['MANAGES.ID_NUMBER'] . "<br>";
}
当我运行它时,我得到了这个:
There was an error running the query [You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'JOIN MANAGES ON BOOK.SERIAL_NUM = MANAGES.SERIAL_NUMBER' at line 1]
最佳答案
尝试
$sql = "SELECT * FROM `BOOK` JOIN MANAGES
ON BOOK.SERIAL_NUM = MANAGES.SERIAL_NUMBER JOIN LIBRARIAN
ON MANAGES.ID_NUMBER = LIBRARIAN.ID_NUMBER
WHERE `BOOK`.`TITLE` like '" . $title . "'";
WHERE
在 SQL 中应该在 JOIN
语句之后。
编辑:我编辑建议这不是执行此操作的安全方法,并且由于该主题仅与建议您的 SQL 中的错误有关,所以我遵循您所写的内容。但是请阅读有关 SQL 注入(inject)的信息并为此更新您的代码。
关于php - 如何使用 MYSQLi 连接三个表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23105613/