2016-07-28 10 views
0

「username」という行があるデータベースがあります。私がログインしているユーザー名に応じて、他の列の値を表示する必要がそうするために、私は次のスクリプトがあります。クエリを実行中にエラーが発生しました['where句'の '不明な列'テスト]

$db = new mysqli('', '', '', ''); 

if($db->connect_errno > 0){ 
    die('Unable to connect to database [' . $db->connect_error . ']'); 
} 

$sql = <<<SQL 
    SELECT * FROM `users` WHERE username = $username 
SQL; 

if(!$result = $db->query($sql)){ 
    die('There was an error running the query [' . $db->error . ']'); 
} 

while($row = $result->fetch_assoc()){ 
    $text_cli = $row['text_cli']; 
    $text_trad = $row['text_trad']; 
} 

をそして$usernameの値が以前に保存されています。

そして最後に:

<div id="text_cli"><?php echo $text_trad ?></div> 
<div id="text_cli"><?php echo $text_cli ?></div> 

しかし、私はこのエラーを取得:クエリ[「where句」内の不明な列「テスト」]を実行しているエラーが発生しました。

"test"は、コードをテストするために作成された偽のユーザー名です。

ありがとうございました。

+1

不足している引用符= $ username'より良い使い方[準備文](http://php.net/manual/en/mysqli.prepare.php)!! – Saty

+0

username = '"。$ username"を使用してください。 – Anshum

答えて

0

ただ、このようなあなたのSQLでの引用符内部のユーザー名の変数を置く:'$username'

SELECT * FROM `users` WHERE username ='$username' 
+0

ありがとうございました – alberzyzz

0

$usernameは以下のように、二重または単一引用符の内側に置かれていることを確認する必要があります。username `で'$username'

+0

ありがとうございました – alberzyzz

+0

SQLインジェクションについてはどうですか? – Walf

関連する問題