-1

我似乎对 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 什么也没显示。

有任何想法吗?

4

2 回答 2

6

mysql_real_escape_string需要与数据库的活动连接。您需要连接到数据库mysql_connect()才能使其正常工作。

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

  1. mysql_*库已弃用。
  2. 准备好的语句比转义要好。
于 2013-01-07T16:52:29.157 回答
3

为了mysql_real_escape_string工作,您必须有一个活动的数据库连接。如果您无法建立数据库连接,请mysql_escape_string改用。

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

于 2013-01-07T16:52:38.203 回答