ホームページ  >  記事  >  バックエンド開発  >  CI フレームワークでストアド プロシージャを使用した後は、他のクエリを実行できません。

CI フレームワークでストアド プロシージャを使用した後は、他のクエリを実行できません。

WBOY
WBOYオリジナル
2016-06-23 13:48:041245ブラウズ

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 は遅れているため削除されます

mysqli または代わりに PDO 拡張子

変更後、mysql_real_escape_string エラーが報告されます。では、どのようなエラーが報告されるのでしょうか?

これはクエリではなく、SQL の結合にも問題があります。

mysql 拡張機能は、ストアド プロシージャの実行後にデータベース接続を切断し、再接続する必要があります

したがって、mysql は後進的であり、削除されます

代わりに mysqli または PDO 拡張機能を使用できます

私は mysqli driver を使用し、$this を持っています->db->close(); により接続が閉じられ、再度開くとエラーが報告されますが、クエリには結果があります


変更後、mysql_real_escape_string エラーが報告されます。どのようなエラーが報告されましたか?


mysql_real_escape_string() を変更した後、次のように報告されました: PHP エラーが発生しました

重大度: 8192


メッセージ: mysql_real_escape_string(): この関数は非推奨です。代わりに mysql_escape_string() を使用してください。
ファイル名: mysqli/mysqli_driver.php

行番号: 320


これはクエリではなく、SQL をまとめる際に問題があります。

すみません、このようにクエリしないとはどういう意味ですか?そうでないことをどうやって確認すればよいでしょうか?
php のバージョンは何ですか?

あなたの php のバージョンは何ですか?
5.5

5.5.0 以降、mysql 拡張機能は廃止され、代わりに mysqli と pdo を使用します。

5.5.0 以降、mysql 拡張機能は廃止され、代わりに mysqli と pdo を使用してください。
上で述べたように、私の mysql ドライバー設定は mysqli です。これは、すべてのクエリ関数が musqli を使用することを意味します。まだ問題を理解していないようです。 。 。

CSDN はまったく人気がありません。モデレータは中途半端です。 。 。もうここには投稿しません

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。