ホームページ >バックエンド開発 >PHPチュートリアル >CI フレームワークでストアド プロシージャを使用した後は、他のクエリを実行できません。
Y CI は、MYSQL のストレージ手順を減らすためです。他の問い合わせを再度実行するには接続を解放する必要がありますが、ここで接続を解放した後のコードは次のとおりです。
// ノード情報を取得します
// db->query( "call ws_node_one($id)");
$data['node'] = $query->result_array()[0];
$this->db->close() ;//接続を閉じます
$this->load->database();//オプション、CI で $this->db が呼び出されたときに自動的に接続します
$this->db->get_where("ws_node",array ("id"=>$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 は遅れているため削除されます
変更後、mysql_real_escape_string エラーが報告されます。では、どのようなエラーが報告されるのでしょうか?
これはクエリではなく、SQL の結合にも問題があります。
mysql 拡張機能は、ストアド プロシージャの実行後にデータベース接続を切断し、再接続する必要があります
したがって、mysql は後進的であり、削除されます代わりに mysqli または PDO 拡張機能を使用できます
私は mysqli driver を使用し、$this を持っています->db->close(); により接続が閉じられ、再度開くとエラーが報告されますが、クエリには結果があります
変更後、mysql_real_escape_string エラーが報告されます。どのようなエラーが報告されましたか?
重大度: 8192
あなたの php のバージョンは何ですか?
5.5.0 以降、mysql 拡張機能は廃止され、代わりに mysqli と pdo を使用します。
5.5.0 以降、mysql 拡張機能は廃止され、代わりに mysqli と pdo を使用してください。
CSDN はまったく人気がありません。モデレータは中途半端です。 。 。もうここには投稿しません