PDO geeft om de één of andere reden een warning, maar nadat ik zelf vijf keer de code van boven tot beneden gelezen heb, ben ik er nog niet achter wat de gemaakte fout nou is. Daarom post ik het maar even hier.
Het regelnummer waarop de warning gegeven werd komt in deze snippet overeen met regel 59.
Warning: PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number: parameter was not defined
<?php
$query =
"INSERT INTO
book
(
title,
subtitle,
author_others,
price,
price_old,
isbn10,
isbn13,
publisher_id,
edition_id,
pages,
category_id,
show,
description_short,
description,
created_at
)
VALUES
(
:title,
:subtitle,
:author_others,
:price,
:price_old,
:isbn10,
:isbn13,
:publisher_id,
:edition_id,
:pages,
:category_id,
:show,
:description_short,
:description,
NOW()
);";
$stmt = $pdo->prepare($query);
$stmt->bindParam(':title', $_POST['title'], PDO::PARAM_STR);
$stmt->bindParam(':subtitle', $_POST['subtitle'], PDO::PARAM_STR);
$stmt->bindParam(':author_others', $_POST['author_others'], PDO::PARAM_BOOL);
$stmt->bindParam(':price', $_POST['price'], PDO::PARAM_STR);
$stmt->bindParam(':price_old', $_POST['price_old'], PDO::PARAM_STR);
$stmt->bindParam(':isbn10', $_POST['isbn10'], PDO::PARAM_STR);
$stmt->bindParam(':isbn13', $_POST['isbn13'], PDO::PARAM_STR);
$stmt->bindParam(':publisher_id', $_POST['publisher'], PDO::PARAM_INT);
$stmt->bindParam(':edition_id', $_POST['edition'], PDO::PARAM_INT);
$stmt->bindParam(':pages', $_POST['pages'], PDO::PARAM_INT);
$stmt->bindParam(':category', $_POST['category'], PDO::PARAM_INT);
$stmt->bindParam(':show', $_POST['show'], PDO::PARAM_BOOL);
$stmt->bindParam(':description_short', $_POST['description_short'], PDO::PARAM_STR);
$stmt->bindParam(':description', $_POST['description'], PDO::PARAM_STR);
$stmt->execute();
?>
Hopelijk ziet iemand het probleem!
Groet, Jonathan
Edit: de oplossing is net aangedragen via Twit-ter.