-3

SQLクエリでPHP変数が機能しない..

PHP初心者です。plsはどこが間違っているのか教えてください。よろしくお願いします。

$sql = 'SELECT email_id FROM dealer WHERE dealerid="'mysql_real_escape_string($id).'"';

$rt  = mysql_query($sql);
$row = mysql_fetch_row($rt);

if($row) {
  echo "<h1>Number:</h1>" . $row[0];
  while($row = mysql_fetch_assoc($rt)) {
    var_dump($row);
  }
}
4

3 に答える 3

4

文字列を適切に連結するのを忘れた

$sql = 'SELECT email_id FROM dealer WHERE dealerid="' . mysql_real_escape_string($id) . '"';

文字列演算子

あなたのコードはおそらくあなたに与えるでしょう

Parse error: syntax error, unexpected T_VARIABLE on line bla

これは構文エラーです。つまり、コードが正しく解析されず、実行されないことがあります。

あなたがすべきことは、単純な間違いがないかどうか、エラーが発生している行の周りを注意深くチェックすることです

そのため、少なくともE_PARSEで有効にしてくださいphp.ini。解析エラーは、実動スクリプトに存在してはなりません。

コーディング中は常にお勧めします

error_reporting(E_ALL);

error_reporting


ノート

  1. 私たちが使用していることは真実ではなく、@ ircmaxellによるこの回答をチェックmysql_real_escape_string() するSQLインジェクションから完全に安全です
  2. ext/mysql接頭辞 mysql_ で名前が付けられたすべての関数を提供する PHP 拡張機能全体は、PHP v5.5.0 で正式に非推奨となり、将来的に削除される予定です。したがって、またはのいずれPDOかを使用しますMySQLi

よく読んだ

  1. mysql 拡張機能は非推奨であり、将来削除される予定です。代わりに mysqli または PDO を使用してください
  2. MySQL 開発者向け PDO チュートリアル
于 2012-12-25T16:01:17.687 に答える
2

1 行目に構文エラーがあります。と mysql.の間に" " が必要です'

$sql = 'SELECT email_id FROM dealer WHERE dealerid="' . mysql_real_escape_string($id) . '"';
于 2012-12-25T15:53:59.840 に答える
0

これを試して

$escaped = mysql_real_escape_string($id);
$sql = "SELECT email_id FROM dealer WHERE dealerid='$escaped'";
于 2012-12-25T15:55:32.390 に答える