SQLSTATE [42000]: синтаксическая ошибка или нарушение прав доступа: 1064 У вас есть ошибка в системе MySQL »в строке 1

$sql = 'INSERT INTO employee (cin,nom) VALUES(:cin,:nom)';

try{
    $requete=$db->query($sql);
    $requete->bindValue(':cin',$emp->GetCin(),PDO::PARAM_STR);
    $requete->bindValue(':nom',$emp->GetNom(),PDO::PARAM_STR);   

    $requete->execute();
}
catch(Exception $e)
{
    die("erreur".$e->getMessage());
}

При выполнении этого кода возникает следующая ошибка:

SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ':cin,:nom)'

Как исправить?

я хочу вставить сотрудника в базу данных

aziz 16.03.2018 01:00
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
1
21
1

Ответы 1

$db->query() выполняет запрос как есть.

Для используемого вами запроса необходимо сначала подготовить оператор, связать параметры, а затем выполнить запрос. В противном случае кортеж после VALUES интерпретируется как данные.

Чтобы исправить это, используйте $db->prepare(). (Документы)

$requete=$db->prepare($sql);
$requete->bindValue(':cin',$emp->GetCin(),PDO::PARAM_STR);
$requete->bindValue(':nom',$emp->GetNom(),PDO::PARAM_STR);   

$requete->execute();

Другие вопросы по теме