2012-03-29 45 views
0

這是很奇怪的,但是當我添加mysql_real_escape_string它不會加載頁面,這是我加載這樣的代碼:mysql_real_escape_string沒有jQuery的負載工作

$('.abandalink').click(function(){ 
    var codigo_membro = $(this).attr('codigomembro'); 
    $('#change').load('membrosbanda.php?codigo='+codigo_membro); 
}); 

這是membrosbanda .PHP

$id=$_GET['codigo']; 
$conexion=mysql_connect(HOSTNAME,USER,PW) or die("Problemas en la conexion"); 
mysql_select_db("bandasideral4",$conexion) 
    or die("Problemas en la selección de la base de datos"); 
$registros=mysql_query("SELECT * FROM abanda where codigo='$codigo'") or 
    die("Problemas en el select:".mysql_error()); 

如果我添加 的$ id = $ _ GET [ 'codigo']; to $ id = mysql_real_escape_string($ _ GET ['codigo']); 它停止工作

+0

它以什麼方式「停止工作」? – Cfreak 2012-03-29 13:53:02

+5

你的MySQL正在監聽端口3306,你剛剛發佈了你的主機(ip),用戶名和密碼。我只登錄進行測試。您應該儘快更改密碼** – Paulpro 2012-03-29 13:55:06

+1

jeroen在他的答案中是正確的,但使用PDO或MySQLi準備好的語句會更好。 – GolezTrol 2012-03-29 13:58:19

回答

4

您需要先連接到數據庫,然後mysql_real_escape_string不可用。

manual

注:

一個MySQL連接是使用() 否則產生水平E_WARNING的誤差mysql_real_escape_string之前必需的,並且是FALSE返回 。如果未定義link_identifier,則使用最後一個MySQL連接 。

0

如果你把codigo在$ ID,你的SQL必須是SELECT * FROM阿班達在那裏codigo = '$ ID'

一個更好的風格應該是這樣的: $ id_s = mysql_real_escape_string($ _ GET [」 codigo']);

因此,你所有的* _s變量都被轉義爲sql的東西,而所有正常的變量都是被污染的數據。