PDO 无效参数 [重复]
Posted
技术标签:
【中文标题】PDO 无效参数 [重复]【英文标题】:PDO Invalid Parameter [duplicate] 【发布时间】:2015-01-27 21:09:17 【问题描述】:在开始之前,我知道还有其他类似的问题,但我无法从其中任何一个中得出解决方案。我的代码运行良好,直到我意外删除它,然后不得不重新制作它。
$sql = "INSERT INTO inquiries (name, email, phone, date, message, event-type, guests, event-budget) VALUES (:name, :email, :phone, :date, :message, :event-type, :guests, :event-budget)";
$stmt = $pdo->prepare($sql);
$result = $stmt->execute(array( ':name' => $_POST['name'],
':email' => $_POST['email'],
':phone' => $_POST['phone'],
':date' => $_POST['date'],
':message' => $_POST['message'],
':event-type' => $_POST['event-type'],
':guests' => $_POST['guests'],
':event-budget' => $_POST['event-budget']
));
if($result)
$tpl->define("alert", "<div class='col-md-12'><div class='alert-success' style='margin-left: 0; margin-bottom: 20px;'><h3><img src='http://criesvals-mbp.home:5757/_zip/_templates/_front/Refresh/multi-page/assets/images/head_img1.png' alt='' class='pull-left small_design_left'>Your Appointment Has Been Submitted<img src='http://criesvals-mbp.home:5757/_zip/_templates/_front/Refresh/multi-page/assets/images/head_img1.png' alt='' class='pull-right small_design_right'></h3></div></div>");
$tpl->define('hide', 'style="display: none;"');
else
$tpl->define("alert", "<div class='col-md-12'><div class='alert-failure' style='margin-left: 0; margin-bottom: 20px;'><h3><img src='http://criesvals-mbp.home:5757/_zip/_templates/_front/Refresh/multi-page/assets/images/head_img1.png' alt='' class='pull-left small_design_left'>There was an error submitting your appointment. Please try again later.</h3><img src='http://criesvals-mbp.home:5757/_zip/_templates/_front/Refresh/multi-page/assets/images/head_img1.png' alt='' class='pull-right small_design_right'></div>");
$tpl->define('hide', 'style="display: none;"');
【问题讨论】:
在绑定前检查是否所有的POST都设置好了 @Mihai 我只是仔细检查了一遍,它们确实都设置好了。我也有 if 语句检查它们是否是“isset”和“!empty”。 尝试将带有破折号的参数名称:event-type
更改为无破折号的名称 :eventType
等...
message, "event-type", guests,
等...用破折号命名列只是一个坏习惯...也许对您来说更容易,对将来重命名列会更好...
@Mihai 我同意它肯定是相关的,但是如果 OP 不知道错误来自哪里,它怎么可能是重复的?
【参考方案1】:
尝试将带有破折号的参数名称 :event-type
更改为无破折号的名称 :eventType
等...
可能还有message, "event-type", guests, ...
等
不客气! :-)
【讨论】:
列名需要用刻度线`
包裹起来——但没有破折号可以完全解决列名的问题。以上是关于PDO 无效参数 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
Pdo - 将值插入数据库错误 SQLSTATE [HY093] [重复]