0

簡単な質問があります。フィールドに格納されたデータをクエリで変数として使用するにはどうすればよいですか?

この例では、crypt を使用し、データベースのパスワード フィールド内の値が必要です。どのように管理すればよいでしょうか。

$myusername=strtolower($myusername);
$query='SELECT * FROM auth '
      ."WHERE uname='$myusername' "
      ."and pword=crypt('$mypassword','pword')";
$result=  mysqli_query($connection, $query);
if(mysqli_num_rows($result)>0)......

pwordそしてuname、認証テーブル内の私のフィールド名です。PHPこれはとの最初のスクリプトSQLです。

4

3 に答える 3

2

データベース内のフィールドを参照したい場合は、それを引用しないでください:

$myusername = $connection->real_escape_string(strtolower($myusername));
$mypassword = $connection->real_escape_string($mypassword);
$query='SELECT * FROM auth'
      ."WHERE uname='$myusername'"
      ."and pword=crypt('$mypassword',pword)";
于 2013-07-23T02:30:18.717 に答える
1

$connection がデータベース接続であると仮定します。

$connection = new mysqli("localhost", "my_db_user", "my_db_password", "my_table");

フィールド user_id と暗号化されたパスワードを取得するとします。

$myusername = $connection->real_escape_string(strtolower($myusername));

$query="SELECT user_id, crypt('{$mypassword}','pword') AS my_password FROM `auth`
      WHERE uname='{$myusername}'
      and pword=crypt('{$mypassword}','pword')";
$result = $connection->query($query);

if ($result !== false && $result->num_rows > 0) {
    $row = $result->fetch_object();
    $myUserID = $row->user_id;
    $myPassword = $row->my_password;
}

ノート :

  • より適切な方法として、PHP 変数を文字列内に {} で囲みます。
  • これらの文字列が複数の行を取る場合でも、クエリ文字列を "" のペアで囲むことができます。

うまくいけば、この助け。

于 2013-07-23T02:55:50.627 に答える