2009-08-16 9 views
2

私はこの奇妙な問題があります。mysql_real_escape_stringが別のサーバで動作しない

私はこのスクリプトを持っている:

echo $comment_content = $_POST['comment_content']; 
echo $comment_content = mysql_real_escape_string($comment_content); 

私は私のウェブサイトのサーバー上でそれを実行すると、それだけで1時間(ない秒1)の値を出力しますが、私はどこにもそれを実行すると、それが正しい出力(2回)。 しかし、私は何度も(同じサイト上で)機能mysql_real_escape_stringを使用しています。

これはコード全体ですが、それ以上はありません。

誰でも同じ問題がありましたか?はいの場合、どのように修正しましたか?

編集:<?php ?>タグもあります。

+0

mysql_real_escape_stringを使用しないでください。ユーザー入力をデータベースに送るには、バインドされたパラメーターを使用する必要があります。データベースに送るのではなく、HTMLに埋め込む場合は、適切な手法を使用する必要があります。 –

+0

どのような技術が例ですか? – Mike

答えて

9

mysql_real_escape_stringには、既存のMySQL接続が必要です。 接続していません。エスケープはありません。

+1

ありがとう!それだった。しかし、一方で、私はそれをテストしていた他のサーバー上でどうしてそれがなくても機能しましたか? :-) – Mike

+0

私はそれがどのように動作するのか理解していません。もっと詳しく説明してください。 – indago

+0

+1これは私を馬鹿にしていたからです!私はもしあなたが+100を与えるだろう。ありがとう – jsherk

0

クエリと接続を確認してください。私が正しくリコールした場合、前のクエリまたは接続に問題があると、mysql_real_escape_stringも失敗します。最初にPHP + MySQLを起動したときに、その不具合が発生しました。

+0

それでは、私は正確に何を探しますか? :/ – Mike

+0

実際、有効な接続データが必要です。しかし、PHPがサーバーに接続できなかった場合、通常は少なくとも1つの大きな警告が表示されます。 – Thorarin

関連する問題