2011-12-26 5 views
1
echo mysql_real_escape_string($dbc, "string"); 

は警告を生成します:私は機能を与える場合でもmysql_real_escape_stringの()警告混乱

Warning: mysql_real_escape_string() expects parameter 1 to be string, object 
given in **...** 

だから、明らかにそれは文字列としてそれらを見ていない文字列オブジェクトであるように見えるものを。

ここでは何が起こっていますか?

+1

注文が出て、ここで起こっています。最初の文字列でお願いします。 –

+0

私の疑問を見て、私は間違いを認識しました。私はmysqlではなくmysqli_real_escape_string()関数を使うことを意図していました。 echo mysqli_real_escape_string($ dbc、 "string");魅力のように働く。 –

+1

[警告:mysql_fetch_ *は、パラメータ1がリソース、ブール値の与えられたエラーを期待しています](http://stackoverflow.com/questions/11674312/warning-mysql-fetch-expects-parameter-1-to-be-resource) -boolean-given-error) – j0k

答えて

5

mysql_real_escape_stringは引数の文字列を取ります。それでおしまい。

$string = mysql_real_escape_string('string')

あなたがリンク識別子を指定したい場合は、オプションの第二引数である:あなたは、次のようにそれに2つのパラメータを渡しているのはなぜ

$string = mysql_real_escape_string('string', $dbc)

1

mysql_real_escape_string($dbc, "string"); 

これを試してください。

echo mysql_real_escape_string($dbc); 
2

docsを確認してください。パラメータは逆になります(接続はオプションです)。通常

mysql_real_escape_string('string', $conn); 
0

我々はmysql_real_escape_stringを使用し、我々は空であり、一部が文字列でないそのうちのいくつかは、我々はそれぞれのフィールドをループしていたSQL文、を扱うときです。 誤差関数は、あなたがチェックを実行する必要があり、この警告を回避するために、いくつかのフィールドを意味する文字列は、文字列ではありません期待してい言う:

if (!empty($dbc) && is_string($dbc)) 
    echo mysql_real_escape_string($dbc, "string");