ошибка fetchall в PDO - PullRequest
       11

ошибка fetchall в PDO

0 голосов
/ 25 апреля 2018

Я пытаюсь написать код для вставки новых элементов в базу данных.

if(isset($_POST['btnAddVeg'])){

$addVegType = $_POST['txtAddVegType'];
$AddVegName = $_POST['txtAddVegName'];

$insertQuery = 'insert into vegetables (vegetable_type, vegetable_id)     values ("$addVegType", "$AddVegName")';

$statement2 = $db->prepare($insertQuery);
$statement2->execute();
$results2 = $statement2->fetchAll();
$statement2->closeCursor();
foreach($results2 as $result2){

echo "<table border = '0'><th>ID</th><th>Type</th><th>Name</th>    <tr><td>".$result2['vegetable_id'].'</td>';
echo "<td>".$result2['vegetable_type'].'</td>';
echo "<td>".$result2['vegetable_name'].'</td></tr></table>';

}

Я получаю эту ошибку:

Неустранимая ошибка: необработанное исключение PDO: SQLSTATE [HY000]: общая ошибка в /vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvtvkv.php(54): PDOStatement-> fetchAll () # 1. *

Наверное, до смешного легко, но чего мне не хватает?

Спасибо

1 Ответ

0 голосов
/ 25 апреля 2018

Выполнение оператора INSERT не возвращает объект набора результатов.

Просто удалите строку, которая выполняет statement2->fetchAll.

, и удалите строки, которые ссылаются на $results2.

Нам понадобится, если бы мы выполняли оператор SELECT, чтобы получить возвращенный набор результатов (набор строк).


Также важно указать: кодуязвимы для SQL-инъекций.

https://xkcd.com/327/

https://www.owasp.org/index.php/SQL_Injection

...