2017-05-24 7 views
0

私は内部結合に問題があります。 phpmyadminの中で、私は3つのテーブルがあります: - proyects 2 - ユーザー 3 - 1 proyects-ユーザー(関係表)PHP、phpmyadmin、mysql

私はだからのproyectで利用可能なすべてのユーザーをリストにしたいidproyectsをPHPへの送信のですが...

try{ 
    $conn = new PDO("mysql:host=$servername;dbname=$dbname", $dbuser, $dbpassword); 
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
    $stmt = $conn->prepare("SELECT * FROM users u INNER JOIN proyects-users pu on pu.id = u.id WHERE pu.idproyect='$justavariable'"); 
    $stmt->execute(); 
    $result = $stmt->fetchAll(); 
} 
+0

あなたが –

+2

今あなたのスクリプトを取得している結果がの危険性があるどのような、さまざまな理由で失敗する可能性があるので、あなたが何が実際に、動作することを確認するべきです[SQLインジェクション攻撃](https://stackoverflow.com/q/60174/5914775) [Little Bobby Tables](http://bobby-tables.com/)に何が起こったのか見てみましょう。あなたのSQLクエリを準備するだけでは不十分です!また、あなたのクエリを[parameterise](https://secure.php.net/manual/en/pdo.prep.php#90209)する必要があります。 –

+1

@Bomテーブルが貧弱なため、彼はそんなに責められず、仕事の生活は恐ろしいものでなければなりません。私はそれが彼が離れて発明された理由だと思う** Tor ** – Martin

答えて

1

他のコメントに示されているようにパラメータを使用する必要がありますが、データベース内のどの名前にも ' - 'を使用しないでください。したがって、proyects-usersは通常proyects_usersとなります。
名前の周りに `proyects-users`を引用することもできますが、どの名前でも ' - 'を使用するのは標準や規約ではありません。

あなたはまた、任意のexecuteがそうusualy

if ($stmt->execute()) { 
    $result = $stmt->fetchAll() 
} 
+0

ありがとう@NigelRenは本当に私がいくつかのSQLエラーを持っていたことを援助しました。しかし、今、それはありがとうございます。 –

関連する問題