0

これは私が直面している奇妙な問題です。ローカル マシンは php 5.6.3 を実行し、ライブ サーバーは php 5.4 を実行しています。最近、アプリを codeigniter 2.* から codeingiter 3.0 に更新しました。現在、ライブ サーバーで実行しているときに、この新しい問題 (古い問題で、まだ機能していないsmtp )について知りました。

PHP エラーが発生しました

重大度: 8192

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

ファイル名: mysql/mysql_driver.php

ライン番号: 319

いくつかのグーグルを行った後、最上位の解決策は ci 2 である可能性があることがわかりました。* codeigniter のmysql_drivers.phpファイルが既にmysql_real_escape_string(). 1つの答えは、ファイルをチェックする必要があることを示唆していdatabase.phpます。デフォルトの接続がwhichmysqlではなく である場合、何が問題になっているのか、何が欠けているのかを知る方法がありません。mysqlimysqli

4

2 に答える 2

1

PHPmysqlドライバーは 5.5 以降非推奨です。http://php.net/manual/en/intro.mysql.phpを参照してください。

だから使わないほうがいい。を使用しmysqliます。

319 行目mysql/mysql_driver.php: https://github.com/bcit-ci/CodeIgniter/blob/3fe79499c5bedb5b3bc4281821776f031f73674e/system/database/drivers/mysql/mysql_driver.php#L319

ありませんmysql_escape_string()。3.0 に正しくアップデートされていないようです。

于 2015-07-19T22:16:43.433 に答える
0

問題は、 MySQLMySQLiが競合していることです。

問題を解決するにはmysqli_real_escape_string()

あなたの知識の詳細

mysql_escape_string()

警告:
この関数は PHP 4.3.0 で非推奨となり、元の MySQL 拡張機能全体とともに将来的に削除される予定です。代わりに、MySQLi または PDO_MySQL 拡張機能を使用する必要があります。詳細については、MySQL: API ガイドの選択および関連する FAQ も参照してください。この機能の代替手段は次のとおりです。
mysqli_escape_string()
PDO::quote()

mysql_real_escape_string()

警告:
この拡張モジュールは PHP 5.5.0 で非推奨になり、将来的に削除される予定です。代わりに、MySQLi または PDO_MySQL 拡張機能を使用する必要があります。詳細については、MySQL: API ガイドの選択および関連する FAQ も参照してください。この機能の代替手段は次のとおりです。
mysqli_real_escape_string()
PDO::quote()

于 2015-07-21T04:34:54.303 に答える