PDA

View Full Version : سوال: خطا هنگام insert با Invalid parameter number: parameter was not defi



numberone1
چهارشنبه 10 دی 1393, 21:49 عصر
سلام
من با pdo میخوام این کوئری رو اجرا کنم این ارور و نشون میده!

Message: SQLSTATE[HY093]: Invalid parameter number: parameter was not defined
مشکل از کجاست؟
این هم کد ها


try{
$stmt = $db -> prepare("INSERT INTO `users`
(`username`,
`password`,
`first_name`,
`last_name`,
`first_name_en`,
`last_name_en`,
`gender`,
`birth_date`,
`code_melli`,
`field_study`,
`art_class`,
`mobile`,
`tel`,
`state`,
`city`,
`address`,
`zip_code`,
`email`,
`site`,
`tarikh`,
`logo`,
`description`,
`active`,
`block`,
`role`)
VALUES
(:username,
PASSWORD(:password),
:first-name,
:last-name,
:first-name-en,
:last-name-en,
:gender,
:birth-date,
:code-melli,
:field-study,
:art-class,
:mobile,
:tel,
:state,
:city,
:address,
:zip-code,
:email,
:site,
:tarikh,
:logo,
:resume,
:active,
:block,
:role) ");
$stmt -> execute(array(':username' => $username,
':password' => $password,
':first-name' => $first_name,
':last-name' => $last_name,
':first-name-en' => $first_name_en,
':last-name-en' => $last_name_en,
':gender' => $gender,
':birth-date' => $birth_date,
':code-melli' => $code_melli,
':field-study' => $field_study,
':art-class' => $art_class,
':mobile' => $mobile,
':tel' => $tel,
':state' => $state,
':city' => $city,
':address' => $address,
':zip-code' => $zip_code,
':email' => $email,
':site' => $site,
':tarikh' => time("NOW"),
':logo' => $actual_image_name ,
':resume' => 'NA',
':active' => 'n',
':block' => 'n',
':role' => 'user'));
}catch(Exception $e) {
echo 'Message: ' .$e->getMessage();

}

numberone1
پنج شنبه 11 دی 1393, 01:39 صبح
کسی نیست کمک کنه؟ خیلی کارم گیره اینه

MMSHFE
پنج شنبه 11 دی 1393, 08:02 صبح
متن کامل خطا رو بگذارین. ضمناً بهتره توی نامگذاری متغیرهای PDO از خط فاصله استفاده نکنید. مثلاً بجای first-name: بهتره از firstName: استفاده کنید.

numberone1
پنج شنبه 11 دی 1393, 13:55 عصر
متن کامل خطا رو بگذارین. ضمناً بهتره توی نامگذاری متغیرهای PDO از خط فاصله استفاده نکنید. مثلاً بجای first-name: بهتره از firstName: استفاده کنید.
دقیقا متنی که catch میشه رو کپی کردم
Message: SQLSTATE[HY093]: Invalid parameter number: parameter was not defined

MMSHFE
پنج شنبه 11 دی 1393, 19:58 عصر
تعداد پارامترها رو چک کنید و مطمئن بشین همشون مقدار میگیرن. ضمناً بهتره رمز رو خام برای mysql نفرستین (توی PHP هش کنید نه اونطرف). درنهایت خطای mysql_error رو هم چاپ کنید ببینیم چیه.