mysql_real_escape_string()出错

时间:2013-08-02 12:59:28

标签: php mysql-real-escape-string

这是我的代码的一部分:

 if(!isset($_GET['username']) || !isset($_GET['sessionid']))
 {
  $returning = array('error' => 'Invalid query');
  echo json_encode($returning);
  break;
 }
 echo $_GET['username'];
 $z = mysql_real_escape_string($_GET['username']);
 echo $z;

我的疑问:

  

tymonradzik.pl/THUNDER_HUNTER/thapi.php?q=xxx&username=ty221&sessionid=JRHjYqeZKBPq1LPPck0XrnCwJU2UKnfufWNem1d7D3yEOnu0HvX9SAFCuIxe6MImJwA6xNdbQLPF9kGRPE0IeGkJoRXvEGRncrtKfGV6sLLB5ssV6sDk9X3xP13tHUQU

只返回“ty221”,但应该是“ty221ty221”。错误在哪里?

1 个答案:

答案 0 :(得分:0)

根据the documentation

  

如果未指定链接标识符,则假定mysql_connect()打开的最后一个链接。如果没有找到这样的链接,它将尝试创建一个,就好像mysql_connect()被调用而没有参数。如果未找到或建立连接,则会生成E_WARNING级错误。

     

返回转义字符串,或者出错时为FALSE

有根据的猜测是,您没有与数据库的有效连接,因此mysql_real_escape_string尝试使用php.ini中失败的配置值打开新连接。


强制性安全通知:

  

您使用的是an obsolete database API,应使用a modern replacement。您也易受 SQL injection attacks攻击,现代API可以让您更轻松地defend自己。