-2

こんにちは、mysqlデータベースからファイル内のデータをフィルタリングするために使用されるphpファイルにクエリがあります

$_SESSION['sc_session'][$this->Ini->sc_page]['grid_deposit']['where_orig'] = " where Reg_no = \"69\"";  

この行で Reg_no = \"69\"" の場合、69 を任意の値に変更するとデータが変更されますが、69 の代わりに配列を使用すると、このように機能しません

   $_SESSION['sc_session'][$this->Ini->sc_page]['grid_deposit']['where_orig'] = " where Reg_no = " . $fc . "";  

しかし、$fc = 69; を使用すると、エコー $fc;

次に、その行では機能しますが、これをコーディングする方法を教えてください私が得るエラーは

Error 
Error while accessing the database:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
select count(*) from deposit where Reg_no = 
4

3 に答える 3

1

元の質問で、このエラーテキストを述べました

Error 
Error while accessing the database:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
select count(*) from deposit where Reg_no = 

$fc が配列の場合、これはクエリでそのまま表示されます。私の記憶が正しければ、そのように見えるでしょう...

Error 
Error while accessing the database:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
select count(*) from deposit where Reg_no = Array

そうではないので、変数 $fc は空であると想定しています。変数を確認したか、クエリを作成してどこかにログを記録し、SQL サーバーに送信されたときにクエリを確認しましたか。

前述のように、それが配列である場合、PHP は、クエリで見つける必要があるテキスト "Array" に誤って使用すると、それを変換します。

于 2013-07-16T14:34:35.330 に答える
1

あなたの Reg_no =\"69\"" から

そしてあなたの Reg_no =". $fc."";

$fc の "" が抜けていませんか

   $_SESSION['sc_session'][$this->Ini->sc_page]['grid_deposit']['where_orig'] = " where Reg_no = \"" . $fc . "\""; 

あなたの69の例と一致するように。

于 2013-07-16T13:58:46.603 に答える
0

あなたは次のようなことをしようとしていると思います

"where Reg_no IN (".implode(",", $fc).")";

于 2013-07-16T13:59:20.940 に答える