php による mysql ストアド プロシージャの呼び出しに関する問題
ストアド プロシージャを一度呼び出してから他のクエリを実行すると、エラーが発生するのはなぜですか?
------------------------
PHP で mysql ストアド プロシージャを呼び出してテーブル内のすべてのデータをクエリし、通常どおり結果を取得したいと考えています。
他のクエリをすぐに実行すると、どのステートメントが使用されてもエラーが返されます。
これはストアド プロシージャです:
#shares テーブルのデータをクエリします
#call proc_show_shares('sendtime') // オブジェクトを並べ替えます
区切り文字 //
存在する場合はプロシージャを削除 proc_show_shares //
CREATE PROCEDURE proc_show_shares (sorttype varchar(15) 内)
開始
Set @sql = concat("select* from share order by ", sorttype," desc");
@sql;
から cmd を準備します
EXECUTEcmd;
DEALLOCATEPREPARE cmd;
終わり//
区切り文字 ;
次のコードは正常に動作します:
$query = "proc_show_shares('sendtime') を呼び出します";
$results = mysql_query($query) //ストアド プロシージャを呼び出します
while($result_row = mysql_fetch_row($results))
{
//{コードスニペット}
$values[] = $result_row;
}
{コードセグメント} はコメントアウトされており、コメントを解除するとエラーが発生します。
コードスニペットは次のとおりです:
$result = mysql_query("id = 10001 のユーザーから名前を選択") または die('depend');
上記の SQL ステートメントは通常、単独で実行されます (もちろん結果はあります) が、一緒に接続すると 'fuck' が出力されます。
なぜ?
値を出力できますが、 mysql_query("select name from users where id = 10001") または die('Damn'); を追加すると機能しません。
データベースはすべてのプロセス中常に接続されています。