-4

ウェブサイトを閲覧すると、すべてが正常に機能します。ウェブサイトはデータベースに接続し、結果を表示します。ただし、遭遇するたびにこのエラーが発生しますmysql_resl_escape_string

mysql_real_escape_string() [function.mysql-real-escape-string]: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) in......

すべてのページから mysql_real_escape_string コードを削除するとすぐに、Web サイトが正常に動作することに注意してください。しかし、これは正当化されません。このことの修正は何ですか?

4

4 に答える 4

1

が機能するにはmysql_real_escape_string、まず次の方法で MySQL に接続する必要があります。mysql_connect

于 2013-02-08T09:02:25.283 に答える
0

このエラーは、デフォルトの mysql データベース接続が .xml 内で適切に構成されていないことを意味しますphp.ini

最初にデータベースに接続せずに を使用する可能性がmysql_real_escape_stringあります。これは、PHP が からのデフォルト構成でデータベースに接続しようとする場合ですphp.ini

あなたの場合、これらのデフォルトはうまく機能しませんでした。それだけです。

構成を変更するとエラーが解消されます。または、有効な mysql データベース接続をmysql_real_escape_string関数呼び出しのパラメーターとして指定します。

追記:mysql_*新しいコードを書いている場合は、mysql データベースにアクセスする関数を削除してください。代わりにMysqliまたはを選択します。PDO

于 2013-02-08T09:03:08.703 に答える
0

mysql_connect から返された接続変数を 2 番目のパラメーターとして渡しますか?

余談ですが、実際にはPDOの使用に移行する必要があります。準備機能を使用すると、文字列が自動的にエスケープされます。

于 2013-02-08T09:05:04.857 に答える
-1

この関数を間違った方法で使用しています。クエリに配置する直前に文字列値のみ
を処理するのではなく、すべてのユーザー入力値をコードの先頭で処理しています。 SQLインジェクションにつながります

于 2013-02-08T09:04:39.377 に答える