これは私を夢中にしています。 私のPHPのバージョンは5.2.17で、MySQLのバージョンは5.1.59"mysql_real_escape_string"エラーDESPITEデータベースに接続中...何か間違っていますか?
私のjavascript(jqueryの)があるさ:
、ページの読み込みにAJAX呼び出しマイ「file.phpで
$(document).ready(function(){$.post("file.php",{"dropTable":tableName}, function(data){});});
<?php
require_once"getDBParameters.php";
$dbParameters = getDBParameters();
if($dbc = mysqli_connect($dbParameters['db_host'], $dbParameters['db_username'], $dbParameters['db_pass'], $dbParameters['db_name'])){
if(isset($_POST['dropTable'])){
$dropTable= $_POST['dropTable'] ;
$escapedRealString = mysql_real_escape_string($dropTable, $dbc);
echo ($escapedRealString);
exit();
}
}
?>
は、私が言ってPHPのエラーを取得:「次のコードが含まれてい
mysql_real_escape_string() expects parameter 2 to be resource, object given in file.php on line 9
同じ接続は、私はプリペアドステートメントを使用している場合、私は、ユーザー入力に基づいてMySQLのテーブルをドロップしていますので、しかし、私はこのケースでプリペアドステートメントを使用することはできません完璧に動作します:
DROP TABLE $dropTable
PHPマニュアルは言います
prepare("DROP TABLE ?")
「getDBParameters」という関数がうまく動作していることが保証できます。 問題が何ですか?他の解決策?
'この場合、私はユーザ入力に基づいてMYSQLテーブルを削除しているので、準備済みの文を使用することはできません。 –
@Damien彼は少なくとも、きれいなインターフェースを提供しています。ボビーテーブルは必要ありません。 ; o) – deceze
@DamienPirsy、はい...私が開発しているのは、私的なサイトのバックエンドです...そのユーザーはログインする人が1人しかいません...まだ、予防措置を取らなければならない...あなたの非常にありがとう非常に貴重なコメントth – dinchakpianist