ホームページ > バックエンド開発 > PHPチュートリアル > CI フレームワークでストアド プロシージャを使用した後は、他のクエリを処理できなくなります。

CI フレームワークでストアド プロシージャを使用した後は、他のクエリを処理できなくなります。

WBOY
リリース: 2016-06-13 12:07:47
オリジナル
824 人が閲覧しました

CI フレームワークでストアド プロシージャを使用した後は、他のクエリを実行できません
CI で MYSQL ストアド プロシージャを呼び出す場合、他のクエリを再度実行する前に接続を解放する必要があります。しかし、解放後にエラーが発生しました。コードは次のとおりです。
// ノード情報を取得します
// ストアド プロシージャを実行します
$query = $this->db->query("call w s_node_one($id) ");
$data['node'] = $query- >result_array()[0];
$this->db->close();//接続を閉じます
$this->load->database();//オプションなし、$this->db が CI =>$pid で呼び出されたときに自動的に接続します));//これはエラーを報告したクエリです

########################### ###########
PHP エラーが発生しました発生しました

重大度: 8192

メッセージ: mysql_escape_string(): この関数は非推奨です。代わりに mysql_real_escape_string() を使用してください。

ファイル名: mysqli/mysqli_driver.php

行番号: 320


########### ######################## #########
後続のクエリには結果がありますが、この mysql_escape_string() 文字エスケープ関数の呼び出しが失敗しました。mysqli/mysqli_driver.php に移動して、mysql_escape_string を mysql_real_escape_string に変更しました。同じことが起こり、mysql_real_escape_string エラーが報告されました。


######################################## # ####
神様、どうか答えてください! ! !
CI 初心者

-----ソリューションのアイデア-----------

mysql 拡張機能ストアド プロシージャの実行後にデータベース接続を切断し、再接続する必要がありますそのため、mysql が遅れているため削除されます
代わりに mysqli または PDO 拡張機能を使用できます

- -----解決策---------------------------

5.5.0以降、mysql拡張機能は廃止されたため、mysqliを使用してください代わりに pdo を使用します。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート