私は2つの仮想テーブル 'アプリケーション'と 'ジョブ'があります。私は今、私は単純なクエリ持っどこLEFT JOINで動作しません
(グローバル変数である)「jobs_id」に基づいて結果を表示するには、両方のテーブルに参加したいとユーザーがログイン:
<?php
$user = 'root';
$pass = '';
$db = new PDO('mysql:host=localhost;dbname=mydb', $user, $pass);
$sql = " SELECT e.application_id, e.candidate_login, e.company_id, e.jobs_id, u.jobs_title, u.jobs_manager
FROM applications
AS e LEFT JOIN jobs
AS u ON e.jobs_id = u.jobs_id
WHERE e.candidate_login='[usr_login]'
";
$query = $db->prepare($sql);
$query->execute();
$results = $query->fetchAll(PDO::FETCH_ASSOC);
?>
私の問題は、WHERE句が禁止しているということですデータは表示されません。
私は、変数 '[usr_login]'を使用して、ログに記録されたユーザーに属する結果のみを表示しています。それは他のすべてのクエリ(ただしこれ以外のクエリ)でも機能します。
変数を定数(メールアドレスなど)に変更すると、結果が表示されます。
私はまた、他のデータがそれに基づいており、期待どおりに機能するので、変数が存在することも肯定的です。
私の質問は、WHERE句が間違っていますか?
誰でも正しい方向に私を向けることができますか?
[usr_login]のデータとは何ですか? –
ブラケットの[]表記に慣れていないので、$ usr_loginを 'bindParam'でバインドしようとしましたか? http://php.net/manual/en/pdo.prepared-statements.php – chiliNUT
構文解析が((アプリケーション AS e)からLEFT JOIN(ジョブ AS u)の場合は、SQLの字下げは奇妙です.jobs_id = u.jobs_id))) (WHERE(...))。 – philipxy