2016-12-02 5 views
-1

フォームから入力を取得しようとしているときに、その名前が出ていればテーブル(ユーザー)をチェックして、uid列を取得する必要があります。PHP - ユーザー名がキーを持っているかどうかを確認するMORE

入力(ユーザ名/ MSG)>ので、UIDを取得する場合、他の(私が得た。これは)>のuid取るユーザーを追加し、私はそのテーブルに(メッセージ)

テーブル構造をMSGを挿入するときに使用>>ユーザー名を確認します: ユーザー:uid(ユニーク)|私は、ユーザーが存在しない場合は追加してい

<?php 
$name = $_GET["name"]; 
$message = $_GET["message"]; 

$checkn = "SELECT 1 FROM user WHERE name = $name"; 
$sql = "INSERT INTO user (uid, name) VALUES ('','$name')"; 
$msg = "INSERT INTO message (uid, message) VALUES ('$uid','$message')"; 
$uid = "SELECT uid FROM user WHERE name = $name"; 
$result = $conn->query($checkn); 

if ($conn->query($checkn) === TRUE) { 
    echo "Checkn TRUE"; 
}else { 
    echo "<br> SHEEET" . $checkn . $conn->error; 
} 

$conn->close();?> 

私はこの部分を成し遂げることができたらしてやり直すと、この固定を取得一括消去:でPHPのwhiseで

相続人に名前を付けます。ありがとうございました。

+0

何が問題なのですか? –

+0

私は 'WHERE name = $ name'はエラーを引き起こすと思います(SQLインジェクションを開きます)。質問は正確な問題が何であるかを説明しません。 SQLインジェクションを防ぐために、パラメータ化されたクエリを使用します。 – chris85

答えて

1

私は間違った質問を書いていると思います。PHPを使用するときは、変数が含まれている場合は'の中にクエリを書くべきです。 "は変数値を解析しません。

$checkn = 'SELECT 1 FROM user WHERE name = $name';

そして、それは動作するはずです:

$checkn = "SELECT 1 FROM user WHERE name = $name";

で:

を交換してください。他のクエリと同じことをやってください。 "

の代わりに'を使用してください。ちょうど私がテーブル名の周り `入れていないときに私は時々問題を抱えているいくつかの理由で私の頭の上

<?php 

$name = $_GET["name"]; 
$message = $_GET["message"]; 

$checkn = sprintf('SELECT 1 FROM `user` WHERE `name` = \'%s\'', $name); 
$sql = sprintf('INSERT INTO `user` (`uid`, `name`) VALUES (\'\',\'%s\')', $name); 
$msg = sprintf('INSERT INTO `message` (`uid`, `message`) VALUES (\'%s\',\'%s\')', $uid, $message); 
$uid = sprintf('SELECT `uid` FROM `user` WHERE `name` = \'%s\'', $name); 

$result = $conn->query($checkn); 

if ($conn->query($checkn) == TRUE) { 
    echo "Checkn TRUE"; 
} else { 
    echo "<br> SHEEET" . $checkn . $conn->error; 
} 

$conn->close(); 

?> 

から

+0

'' 'は厳密で、varsは許されません' ''はすべてのvarsを許可します。 – KatsuoRyuu

0

。 私は変数補間を分離しているので、SQLインジェクションのために安全にすることができます(私はそれを保護しませんでした)。

トリプルを使用した場合===これは厳密ですが、mysqlはstrictを使用している場合に1を返します。

希望します。

関連する問題