Here my PHP code implements insert in db:
<?php require_once "includes/db_data_inc.php"; try { $DBH = new PDO("mysql:host=$db_host;dbname=$db_name",$db_user,$db_pass); $DBH->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $cathy = new patient($_POST['name'], $_POST['surname'], $_POST['address'], $_POST['birth-place'], $_POST['province'], $_POST['dt'], $_POST['gender'], $_POST['select']); $STH = $DBH->prepare("INSERT INTO users (name, surname, address, birth_place, province, dt, sex, case) value (:name :surname, :address, :birth_place, :province, :dt, :sex, :case)"); $STH->execute((array)$cathy); } catch (PDOException $pdoe) { error_log($pdoe->getMessage()); die("An error was encountered!"); } ?>
Here's db_data_inc.php where db_info is stored and where I create the patient object
$db_host = 'localhost'; $db_name = 'main_db'; $db_user = 'root'; $db_pass = 'root'; class patient { public $name; public $surname; public $address; public $birth_place; public $province; public $birth_date; public $sex; public $case; function __construct($nm,$sur,$addr,$bp,$pr,$bd,$sx,$cs) { $this->name = $nm; $this->surname = $sur; $this->address = $addr; $this->birth_place = $bp; $this->province = $pr; $this->birth_date = $bd; $this->sex = $sx; $this->case = $cs; } }
I get this error:
[10-Feb-2012 21:14:29] SQLSTATE[HY093]: Invalid parameter number: parameter was not defined
But I did not understand the reason ... why did I get this error? can someone help me? Where is the mistake?