Хорошо, это сводит меня с ума.
Моя версия PHP 5.2.17, версия MySQL 5.1.59
Мой javascript (jquery):
$(document).ready(function(){$.post("file.php",{"dropTable":tableName}, function(data){});});
, который является ajax-вызовом при загрузке страницы
Мой файл "file.php" содержит следующий код:
<?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" работает нормально.
В чем проблема ? Любое другое решение?