MySQL: ошибка синтаксиса неверного запроса YA

#mysql #syntax

#mysql #синтаксис

Вопрос:

это выдает ошибку «недопустимый синтаксис». что в этом такого недопустимого?

 $companyName = 'big company';
$address1 = 'big bay #8';
$address2 = 'some big warehouse';
$city = 'big city';
$province = 'AB';
$postalCode = 'T1T0N0';
$phone = '0123456789';
$email2 = 'bigKahuna@bigKahuna.edu';

$query = "INSERT INTO clients ";
$query .= "(companyName, address1, address2, city, province, postalCode, phone, email) ";
$query .= "VALUES (". $companyName.",".$address1.",".$address2.",".$city.",".$postalCode.",".$phone.",".$email2.")";

print ($query . "<br><br>");

$result = mysql_query($query, $connexion);

if ($result)
{
    //  Success!
    echo "Fabulous!  check the DB, we did it! :D<br>";
} else {
    //  Fail!
    echo"CRAAAAAPP!  something went wrong.  FIX IT!  :P<br>";
    echo mysql_error();
}
  

я трижды проверил таблицу, и в основном это все VARCHAR (50), имена правильные, и последовательность правильная (не такая плохая последовательность могла бы ее нарушить …).

Чего я не понимаю? … и НЕТ, connexion НЕ написан с ошибкой…

Ответ №1:

У вас есть куча строковых переменных, которые должны быть заключены в одинарные кавычки (и правильно экранированы).

 query = "INSERT INTO clients ";
$query .= "(companyName, address1, address2, city, province, postalCode, phone, email) ";
$companyName = mysql_real_escape_string($company_name);
//... etc - escape all other variables 
$query .= "VALUES ('". $companyName."',"'.$address1."','".$address2."','".$city."','".$postalCode."','".$phone."','".$email2."')";
  

Комментарии:

1. да. я только что понял это. какая глупая ошибка. я использовал '{$var}' формат. спасибо, что показали мне другой метод. 🙂

Ответ №2:

Вы вставляете текст, а не заключаете его в одинарные кавычки. Настоятельно рекомендую вам перейти на использование параметризованного запроса.