mysql_real_escape_string();问题

时间:2013-01-07 16:49:50

标签: php mysql sql

我似乎遇到了mysql_real_escape_string();

的小问题

它没有给我一个返回值,例如我正在使用它:

$a = mysql_real_escape_string($tableName);

但是$ a是空白的。

我已经运行了几次测试:

$query = "CREATE TABLE ".$tableName." AS (SELECT * FROM availability WHERE 1=2)";

echo "query: " . $query;

echo "tableName: " . $a;

,输出如下:

query: CREATE TABLE gRLEFCnOauUlJAekIEq5 AS (SELECT * FROM availability WHERE 1=2)tableName:

正如您所看到的那样,查询符合预期,但$ a没有显示任何内容。

任何想法?

2 个答案:

答案 0 :(得分:6)

mysql_real_escape_string需要与数据库的活动连接。您需要使用mysql_connect()连接到数据库才能使用它。

但是,最好切换到PDO或MySQLi并使用预准备语句,因为:

  1. 不推荐使用mysql_*库。
  2. 准备好的陈述胜过逃避。

答案 1 :(得分:3)

要使mysql_real_escape_string生效,必须才能拥有有效的数据库连接。如果您无法建立数据库连接,请改用mysql_escape_string

旁注:这些都不是理想的,因为不推荐使用mysql扩展。你应该转向PDO或mysqli。