Застрял здесь некоторое время.
Я получаю эту ошибку, когда пытаюсь запустить код:
Предупреждение: PDOStatement :: execute (): SQLSTATE [HY093]: Недопустимый номер параметра: параметр не был определен в /Applications/XAMPP/xamppfiles/htdocs/ProjectWebSite/php/PDO.php в строке 111
Строка 111 – первая строка кода
$result1 = $query1->execute( array( ':transactionID'=>$transactionID, ':personalID'=>$array['personalID'], ':description'=>$array['description'], ':cost'=>$array['cost'], ':datetime'=>$array['datetime'] ) ); function createTransaction($array){ $db = connection(); $stmt = $db->prepare("Select MAX(`transactionID`)+1 AS transactionID FROM transaction "); $stmt->execute(); $transactionID = null; $results = $stmt->fetchAll(); foreach ($results as $result) { $transactionID =$result['transactionID']; } if(isset($transactionID)){ $sql = "INSERT INTO `transaction`(`transactionID`, `personalID`, `description`, `cost`, `dateTime`)" . " VALUES (:transactinID,:personalID,:description,:cost,CAST(:datetime AS DATETIME)"; $query1 = $db->prepare( $sql ); $result1 = $query1->execute( array( ':transactionID'=>$transactionID, ':personalID'=>$array['personalID'], ':description'=>$array['description'], ':cost'=>$array['cost'], ':datetime'=>$array['datetime'] ) ); var_dump($result1); if ( $result1 ){ return $transactionID; } return null; } }
у вас есть опечатка в вашем запросе:
:transactinID
должен быть :transactionID
У вас просто опечатка:
заменить:
$sql = "INSERT INTO `transaction`(`transactionID`, `personalID`, `description`, `cost`, `dateTime`)" . " VALUES (:transactinID,:personalID,:description,:cost,CAST(:datetime AS DATETIME)";
с:
$sql = "INSERT INTO `transaction`(`transactionID`, `personalID`, `description`, `cost`, `dateTime`)" . " VALUES (:transactionID,:personalID,:description,:cost,CAST(:datetime AS DATETIME)";