У меня ошибка в mySQL

Неустранимая ошибка: необработанное исключение «PDOException» с сообщением «SQLSTATE [42000]: синтаксическая ошибка или нарушение прав доступа: 1064 В синтаксисе SQL есть ошибка; проверьте руководство, соответствующее вашей версии сервера MySQL, чтобы найти правильный синтаксис для использования рядом с » в строке 1 ‘в / home // домены // Public_html / новый /.php: 140 Трассировка стека: # 0 / home // домены // Public_html / новый /.php (140): PDOStatement-> execute () # 1 {main} добавляется в / home // домены //public_html/new/***.php в строке 140

Ниже вы найдете мой код:

if(count($errors) == 0) {
$title = trim($_POST['title']);
$category = trim($_POST['category']);
$ing = trim($_POST['ing']);
$ing_pond = trim($_POST['ing_pond']);
$ing_note = trim($_POST['ing_note']);
$description = trim($_POST['description']);
$time = trim($_POST['time']);
$insert = $dbh->prepare('INSERT INTO recettes (id, id_user, title, category, ing, ing_pond, ing_note, description, graad, time) VALUES (NULL, :meid :title, :category, :ing, :ing_pond, :ing_note, :description, :graad, :time');
$insert->bindParam(':meid', $me['id'], PDO::PARAM_INT);
$insert->bindParam(':title', $title, PDO::PARAM_STR);
$insert->bindParam(':category', $category, PDO::PARAM_STR);
$insert->bindParam(':ing', $ing, PDO::PARAM_STR);
$insert->bindParam(':ing_pond', $ing_pond, PDO::PARAM_STR);
$insert->bindParam(':ing_note', $ing_note, PDO::PARAM_STR);
$insert->bindParam(':description', $description, PDO::PARAM_STR);
$insert->bindParam(':graad', $graad, PDO::PARAM_STR);
$insert->bindParam(':time', $time, PDO::PARAM_STR);
$insert->execute();
$uid = $dbh->lastInsertId();
echo alert('Uw gerecht is succesvol toegevoegd.', 'success');
$added = true;
}else{
echo alert('Er ging wat mis. De volgende dingen gingen fout:<ul><li>' . join('</li><li>', $errors) . '</li></ul>Het gerecht is helaas niet toegevoegd.', 'danger');
}

Как мне решить это, могут ли некоторые помочь мне 🙂

Большое спасибо!

-2

Решение

Заменить эту строку:

$insert = $dbh->prepare('INSERT INTO recettes (id, id_user, title, category, ing, ing_pond, ing_note, description, graad, time) VALUES (NULL, :meid :title, :category, :ing, :ing_pond, :ing_note, :description, :graad, :time');

С этой строкой:

$insert = $dbh->prepare('INSERT INTO recettes (id, id_user, title, category, ing, ing_pond, ing_note, description, graad, time) VALUES (NULL, :meid, :title, :category, :ing, :ing_pond, :ing_note, :description, :graad, :time)');

Вы забыли последнее ) в вашем коде и запятой , между :meid а также :title

2

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

В вашем запросе посмотрите на эту строку:

VALUES (NULL, :meid :title, :category, :ing, :ing_pond, :ing_note, :description, :graad, :time');

обратите внимание, что между запятыми нет :meid а также :title

это должно быть

VALUES (NULL, :meid, :title, :category, :ing, :ing_pond, :ing_note, :description, :graad, :time)');
3

Также примите мой совет: не пишите циклы для каждой команды sql.

просто пиши один раз беги куда угодно

создать класс php и отправить только команду

почему вы должны следовать этому методу?
потому что у вас снова будут те же технические ошибки и проблемы, и это может свести программистов с ума!

однако, если вы подготовите команду sql один раз, вам не нужно будет писать для каждого sql commend.

PHP PDO

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