PDOStatement :: execute (): SQLSTATE [HY093]: недопустимый номер параметра: параметр не был определен в строке 60

Я изо всех сил пытаюсь выяснить, в чем проблема в моем коде, я читал некоторые похожие вопросы на этой платформе, но ни один из них не помог мне решить проблему. Я указал, какая строка указана в сообщении об ошибке (Предупреждение: PDOStatement :: execute (): SQLSTATE [HY093]: недопустимый номер параметра: параметр не был определен в C: \ xampp \ htdocs \ Website system \ sale.php on line 60)

<?php
//link files
require ('config.php'); //database connection

//get user input from the form
if (isset($_POST['formSubmit'])) {
//product details
$brand = checkData($_POST['brand']);
$model = checkData($_POST['model']);
$serial = checkData($_POST['serialnumber']);
$yearModel = checkData($_POST['yearmodel']);
$productType = checkData($_POST['type']);
$condition = checkData($_POST['condition']);
//supplier details
$supplierId = checkData($_POST['supplierid']);
$supInvoice = checkData($_POST['supplierinvoice']);
$supPrice = checkData($_POST['supplierprice']);
//customer details
$custId = checkData($_POST['customerid']);
$custInvoice = ($_POST['custinvoice']);
$custPrice = checkData($_POST['custprice']);
$purchaseDate = checkData($_POST['purchasedate']);

require_once ('config.php'); //database connection
global $dbselect;
//SQL - add data to database
$qry1 = 'INSERT INTO product
(brand, model, serial, yearmodel, type, prodCondition, purchDate, supplierId, supInvoice, supPrice, custId, custInvoice, custPrice)
VALUES
(:brand, :model, :serial, :yearModel, :productType, :condition, :purchaseDate, :supplierId, :supInvoice, :supPrice, :custId, :custInvoice, :custPrice)';
//execute query
$statement = $dbselect->prepare($qry1);
$statement->bindValue(':brand', $brand);
$statement->bindValue(':model', $model);
$statement->bindValue(':serial', $serial);
$statement->bindValue(':yearModel', $yearModel);
$statement->bindValue(':productType', $productType);
$statement->bindValue(':prodCondition', $condition);
$statement->bindValue(':purchaseDate', $purchaseDate);
$statement->bindValue(':supplierId', $supplierId);
$statement->bindValue(':supInvoice', $supInvoice);
$statement->bindValue(':supPrice', $supPrice);
$statement->bindValue(':custId', $custId);
$statement->bindValue(':custInvoice', $custInvoice);
$statement->bindValue(':custPrice', $custPrice);

if ($statement->execute())  { //////<-PROBLEM ON THIS LINE//////
echo 'New Sale Added Successfully!';
} else {
echo 'Not successfull.';
}
$statement->closeCursor();
}

//validate data
function checkData($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
?>

-1

Решение

Проверьте заполнители привязки столбца, столбец «prodCondition» содержит заполнитель параметра «: condition», но в функции bindValue вы привязываете его к заполнителю «: prodCondition», который является правильным именем столбца, но не существует в качестве заполнителя. Лучше всего для удобства чтения, чтобы имена столбцов и заполнители были согласованными.

Поэтому бит запроса должен выглядеть так:

        //SQL - add data to database
$qry1 = 'INSERT INTO product
(brand, model, serial, yearmodel, type, prodCondition, purchDate, supplierId, supInvoice, supPrice, custId, custInvoice, custPrice)
VALUES
(:brand, :model, :serial, :yearModel, :productType, :prodCondition, :purchaseDate, :supplierId, :supInvoice, :supPrice, :custId, :custInvoice, :custPrice)';
0

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

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

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector