1
试图建立一个表单来添加项目到数据库,但每次我点击'提交'它会引发一个错误,并即时无法找到问题。 ''));'');'';'');'我试图改变它,没有运气。任何帮助/指导将不胜感激。在我的PHP代码中有参数问题,参数没有定义
错误消息 '警告:PDOStatement对象::执行():SQLSTATE [HY093]:无效参数号:未定义的参数'
<?php
if(isset($_POST['submit'])){
// Field validation
if(strlen($_POST['groupname']) == ''){
$error[] = 'Please enter group/individual name';
}
if(strlen($_POST['address1']) == ''){
$error[] = 'Please enter first line of address';
}
if(strlen($_POST['city']) < 2){
$error[] = 'City field too short.';
}
if(strlen($_POST['postcode']) < 7){
$error[] = 'Please enter valid postcode.';
}
if(strlen($_POST['phone']) < 11){
$error[] = 'Please enter valid contact number.';
}
if(!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)){
$error[] = 'Please enter a valid email address';
} else {
$stmt = $con->prepare('SELECT email FROM groups WHERE email = :email');
$stmt->execute(array(':email' => $_POST['email']));
$row = $stmt->fetch(PDO::FETCH_ASSOC);
if(!empty($row['email'])){
$error[] = 'Email provided is already in use.';
}
//If no errors - proceed
if(!isset($error)){
try {
//insert into database with a prepared statement
$stmt = $con->prepare('INSERT INTO groups (groupName,address1,address2,city,postcode,phoneNumber,email,coOrdinator)
VALUES (:groupname, :address1, :address2, :city, :postcode, :phone, :email, :co-ordinator)');
$stmt->execute(array(
':groupname' => $_POST['groupname'],
':address1' => $_POST['address1'],
':address2' => $_POST['address2'],
':city' => $_POST['city'],
':postcode' => $_POST['postcode'],
':phone' => $_POST['phone'],
':email' => $_POST['email'],
':co-ordinator' => $_POST['co-ordinator']
));
if ($stmt){
echo "<p>Kit has been added successfully!</p>";
} else {
echo "<p>Sorry, there has been a problem adding the item.</p>";
}
exit();
//else catch the exception and show the error.
} catch(PDOException $e) {
$error[] = $e->getMessage();
}
}
}
非常感谢!将来肯定不会忘记!您可以使用下划线 – user3487430 2015-04-02 00:02:17
。您使用哪种参数命名策略试图确保其唯一唯一的参数和全局使用,它会轻松读取代码。它适用于所有属性,方法等,您不必遵循编码标准。它不推荐,但只要你是一致的,你可以制定自己的标准。 – Chris 2015-04-02 00:12:53