2016-03-30 2 views
0

Это, скорее всего, новичок, но, к сожалению, я не смог это понять.Ошибка при добавлении, где статья

Когда я запускаю этот код я получаю ошибку 'Errno' => Int 1064 'SQLSTATE' => строка '42000' (длина = 5) 'ошибка' => строка «У вас ошибка в ваш синтаксис SQL; проверьте руководство, соответствующее версии сервера MySQL, для правильного синтаксиса для использования рядом с '\' Caribbean '' в строке 1 '(длина = 159)

Если я использую «select * from Country», запрос работает, но когда я добавляю «где Region =« Caribbean », это не так.

$sql = "select * from Country where Region = 'Caribbean'"; 
$db = mysqli_init(); 
$db->options(MYSQLI_OPT_INT_AND_FLOAT_NATIVE, 1); 
@ $db->real_connect('localhost', 'user', 'passwd', 'world'); 
if ($db->connect_errno) { 
    echo "Failed to connect to MySQL: (". $db->connection_errno . ")". 
     $mysqli->connect_error; 
    exit; 
} 
$sql = $db->real_escape_string($sql); 
$result = $db->query($sql); 
var_dump($db->error_list); 
var_dump($result->fetch_all()); 
+1

Вы должны бежать только Params (в вашем случае -> Карибское море), а не весь запрос – bksi

+0

@bksi - это работало. Я поместил Карибский регион в переменную, а затем объединил ее в SQL и работал. (нет способа отметить комментарий как ответ :() – klequis

+0

Я положил его на ответ;). Рад помочь – bksi

ответ

0

Вам следует избегать только параметров, а не всего запроса.

что-то вроде:

$region = 'Caribbean'; 
$paramRegion = $db->real_escape_string($region); 
$sql = "select * from Country where Region = '".$paramRegion."'"; 
$db = mysqli_init(); 
$db->options(MYSQLI_OPT_INT_AND_FLOAT_NATIVE, 1); 
@ $db->real_connect('localhost', 'user', 'passwd', 'world'); 
if ($db->connect_errno) { 
    echo "Failed to connect to MySQL: (". $db->connection_errno . ")". 
     $mysqli->connect_error; 
    exit; 
} 
$result = $db->query($sql); 
var_dump($db->error_list); 
var_dump($result->fetch_all()); 
0

Вы можете попытаться проверить символы котировки, если вы скопируете из текстового файла, который может отличаться от символа в скрипте. Также после ввода символов с клавиатуры попробуйте поместить имя страны в переменную и вызвать по ссылке, если все еще получить ошибку.

Смежные вопросы