mysql_real_escape_string不能在jquery上运行

时间:2012-03-29 13:51:31

标签: php jquery mysql-real-escape-string

这很奇怪,但是当我添加mysql_real_escape_string它没有加载页面时,这就是我加载的代码:

$('.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']); 它停止工作

2 个答案:

答案 0 :(得分:4)

mysql_real_escape_string不可用之前,您需要先连接到数据库。

来自manual

  

注意:

     

在使用mysql_real_escape_string()之前需要MySQL连接   否则会生成E_WARNING级别的错误,FALSE为   回。如果未定义link_identifier,则为最后一个MySQL连接   使用。

答案 1 :(得分:0)

如果你把codigo放在$ id中,你的sql必须是SELECT * FROM abanda,其中codigo ='$ id'

更好的风格是这样的: $ id_s = mysql_real_escape_string($ _ GET ['codigo']);

因此,您所有的* _s变量都被转义为sql内容,并且所有正常变量都被污染了数据。