0

可能重复:
警告:PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens in

我尝试提交具有不同广告类型选项的广告表单,但是当我提交给出此错误的表单时:

错误:SQLSTATE[HY093]:无效的参数号:绑定变量的数量与标记的数量不匹配

SQL 代码:

try
{
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '', $pdo_options);
$req = $bdd->prepare('INSERT INTO ads (kind, kind2, kindsale, titre, price, money, country, state, county, city, adress, phone, message, image, image2, image3, image4, image5, image6, inputid, date, ldesc, email, account, room, area, uarea, file, mark, miles, mi) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)');
$req->execute(array($_POST['kind'], $_POST['kind2'], $_POST['kindsale'], $_POST['titre'], $_POST['price'], $_POST['money'], $_POST['country'], $_POST['state'], $_POST['county'], $_POST['city'], $_POST['adress'], $_POST['phone'], $_POST['message'], '1'.$name.$name6.$_FILES['image']['name'], '2'.$name2.$name5.$_FILES['image2']['name'], '3'.$name3.$name4.$_FILES['image3']['name'], '4'.$name4.$name3.$_FILES['image4']['name'], '5'.$name5.$name2.$_FILES['image5']['name'], '6'.$name6.$name.$_FILES['image6']['name'], $_POST['inputid'], $_POST['date'], $_POST['ldesc'], $_POST['email'], $_POST['taccount'], $_POST['room'], $_POST['area'], $_POST['uarea'].$name3.$name4.$_FILES['file']['name'], $_POST['mark'], $_POST['mileage'], $_POST['mi']));
header('Location: index.php');
}
catch(Exception $e)
{
    die('Error: '.$e->getMessage());
}

表单中的一些数据用 $('.thing').hide(); 隐藏。在 jquery 中,但我认为即使隐藏这些也提交为 void 所以存在。

谢谢

4

2 回答 2

0

哦不不不.. 尝试赶上您称为数据库规范化的设计,您的表ads正在为它尖叫。其次,您的错误与查询中的问号?或占位符的数量没有足够的参数(或太多)有关。只需数一数,看看哪里缺少一两个(或更多)(或太多)

于 2012-09-16T19:01:11.247 回答
0

您提供的参数数量少于 SQL 语句中的参数数量。也就是说,您在 SQL 语句中有 32 个问号,这意味着您必须提供 32 个值。如果我的计数是正确的,你只提供了 30 个。

于 2012-09-16T19:02:33.570 回答