Каковы последствия форматирования для операторов SQL в приложениях PHP?

У меня есть этот кусок кода PHP, который обращается к базе данных с помощью XAMPP / mysql. Я устанавливаю строку запроса, оба выглядят одинаково для меня, кроме пробелов / табуляции, но один работает, а другой нет.

Это не работает:

$sql = "UPDATE employees
SET
first_name = '$_GET[firstname]',
last_name = '$_GET[lastname]',
hire_date = '$_GET[hiredate]',
salary = '$_GET[salary]',
department_id = '$_GET[department]',
WHERE
employee_id = '$_GET[id]'";

Это работает:

$sql = "UPDATE employees
SET
first_name      =    '$_GET[firstname]',
last_name       =   '$_GET[lastname]',
hire_date       =   '$_GET[hiredate]',
salary          =   '$_GET[salary]',
department_id   =   '$_GET[department]'
WHERE
employee_id     =   '$_GET[id]'";

Когда я использую неверное утверждение, я получаю:

У вас есть ошибка в вашем синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MySQL, на предмет правильного синтаксиса, который можно использовать рядом с ‘WHERE employee_id =’ 104 » в строке 8

Кто-нибудь может объяснить почему?

-1

Решение

У вас есть лишняя запятая в вашем первом примере. В основном вы сделали опечатку.

$sql = "UPDATE employees
SET
first_name = '$_GET[firstname]',
last_name = '$_GET[lastname]',
hire_date = '$_GET[hiredate]',
salary = '$_GET[salary]',
department_id = '$_GET[department]', // <--- HERE
WHERE
employee_id = '$_GET[id]'";
4

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]