php - 如何使用 MYSQLi 连接三个表?

标签 php mysql sql join

我知道之前有人问过这个问题,但我希望有人可以帮助我解决我这里的特定实例(现在是凌晨 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/

相关文章:

php - 缓存 MySQL 结果集

php - 需要检查网站是否包含 ssl 证书,如果是,那么使用 php 脚本证书的过期日期是多少

php - 如何从文本 block 中提取权重和其他元数据?

php - 如何求和行并获得结果permount mysql php

php - 使用 $_POST 验证 html/PHP 字段中的重复条目

sql - 每小时和每分钟的 session 数 : SQL - BigQuery/GA360

javascript - jQuery 日期选择器未显示在 html 中动态生成的输入字段中

C++ 项目到 linux

sql - Oracle Explain Plan for Query with Collection 使用表函数

SQL 自连接查询帮助