0

SQLクエリの実行に問題があります。次のSQLクエリを使用しています。

$userid = 1;  

$sql = mysql_query("
  SELECT ID, Nm, Address, date_format(DateOfBirth, '%d%M%Y') as DateOfBirth 
  FROM PersonalDetails where UserMasterID = $userid
") or die (mysql_error());

結果は次のように表示されます。

SQL構文にエラーがあります。1行目の「=」の近くで使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください。

これをPHPMyAdminで実行すると、正しく機能します。私はmysql(5.0.5b)とPHP(5.2.6)を使用しています

手伝ってくれませんか。

4

3 に答える 3

5

UserMasterIDが整数でない場合は、値を引用符で囲む必要がある場合があります。

PersonalDetails where UserMasterID = '$userid'"

上で引用したクエリは、phpMyAdmin で実行したものと同じではありません。PHP変数が含まれています。SQL の問題が発生した場合は、常に解析されたクエリを出力して分析します (PHP 変数への参照は含まれません)。

$query = "select ID... etc. etc.";
$result = mysql_query($query);

if (!$result) 
 echo "Error in query $query: ".mysql_error();

問題の 90% は、この方法で発見して解決できます。

于 2010-06-03T09:52:37.570 に答える
0

PHPMyAdminで正しく実行されているが、PHPコードでは実行されていない場合は、PHPMyAdminが、可能な限りすべてをエスケープしてサニタイズするという有名なタスクを実行していることを示しています。

コードをこれに変更して確認してください。

$userid = 1;  

$sql = mysql_query("
  SELECT `ID`, `Nm`, `Address`, date_format(`DateOfBirth`, '%d%M%Y') as DateOfBirth 
  FROM `PersonalDetails` where `UserMasterID` = '{$userid}'
") or die (mysql_error());

今すぐ実行する必要があります。

于 2010-06-03T13:28:36.000 に答える
-2

ええと、連結しないのはなぜですか?

"SELECT `ID`, `Nm`, `Address`, date_format(`DateOfBirth`, '%d%M%Y') as DateOfBirth 
FROM `PersonalDetails` where `UserMasterID` = '" . $userid . "'";

しかし、ジョセフはぴったりです...

于 2010-06-03T13:53:49.723 に答える