-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 に答える