#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:
Вы вставляете текст, а не заключаете его в одинарные кавычки. Настоятельно рекомендую вам перейти на использование параметризованного запроса.