【发布时间】:2019-03-02 04:38:00
【问题描述】:
我需要使用 INNER JOIN 和 WHERE 子句对我的数据库进行 PHP PDO 调用。
在 Navicat GUI 中,这条语句运行良好,我可以看到结果。关于字符串连接的问题在php环境中出现。
我想格式化这个请求,以便它可以被 php 消化:
SELECT * FROM tsourcetb as T INNER JOIN users as U ON U.username = T.username WHERE U.username = $username AND T.username = $username;
我想做什么
$sth = $db->prepare("SELECT * FROM tsourcetb as T INNER JOIN users as U ON U.username = T.username WHERE U.username = $username AND T.username = $username");
返回是一个错误,表示没有带有变量名的表。基本上它将变量作为表的名称返回是一个错误,表明没有具有变量名称的表。基本上它将变量作为表名而不是表名(SELECT * FROM $username)跳出语句的第一部分)。
目的是让表 A 的所有记录,其中用户名字段 = = 表 B 的用户名字段,值从变量传递。 感谢您为实现我的目标提出的任何建议。
更新
php 是神奇的需要尝试和重演。最后请帮助我实现目标:
$username = ($_POST['username']);
$password = ($_POST['password']);
$statement = $db->prepare('SELECT p.* FROM `tsourcetb` as p LEFT JOIN `users`as s ON p.username = s.username WHERE s.username = :username;');
$statement->bindParam(':username', $username, PDO::PARAM_STR);
$statement->execute();
/* 看这里 -> $statement->fetchall(PDO::FETCH_ASSOC) */
$array_select = $statement->fetchall(PDO::FETCH_ASSOC);
echo json_encode($array_select, JSON_PRETTY_PRINT);
【问题讨论】:
标签: php pdo sqlite inner-join