Я изучаю PHP прямо сейчас, и я пытаюсь вставить данные в базу данных MySQL под названием «pumpl2». Таблица настроена следующим образом.Новичок PHP: я не могу вставить данные в базу MYSQL
create table product
(productid int unsigned not null auto_increment primary key,
price int(9) not null,
value int(9) not null,
description text
);
У меня есть форму и вы хотите вставить поля из формы в базу данных. Вот как выглядит php-файл.
<?php
// create short variable names
$price = $_POST['price'];
$value = $_POST['value'];
$description = $_POST['description'];
if (!$price || !$value || !$description) {
echo "You have not entered all the required details.<br />"
."Please go back and try again.";
exit;
}
@ $db = new mysqli('localhost', 'pumpl', '********', 'pumpl2');
if (mysqli_connect_errno()) {
echo "Error: Could not connect to database. Please try again later.";
exit;
}
$query = "insert into pumpl2 values
('".$price."', '".$value."', '".$description."')";
$result = $db->query($query);
if ($result) {
echo $db->affected_rows." product inserted into database.";
} else {
echo "An error has occurred. The item was not added.";
}
$db->close();
?>
При отправке формы я получаю сообщение об ошибке «Произошла ошибка. Элемент не был добавлен».
Кто-нибудь знает, в чем проблема? Спасибо!
Вы конкатенации сырые почтовые значения в операторе INSERT, который является очень плохой идеей. Вы должны изучить PDO и подготовленные заявления: http://www.php.net/manual/en/pdo.prepare.php –
Я сейчас проверю. Благодаря! – Victor
@Colonel фактически, PDO не имеют монополии на параметризованные запросы. mysqli имеет аналогичный механизм. –