【发布时间】:2014-06-21 16:23:29
【问题描述】:
在运行我的代码后,我遇到了这种错误,谁能帮我解决它。如果电子邮件在数据库中是否重复,则在输入代码以过滤后开始出现错误。
这是我得到的错误:
<?php
$host = "localhost";
$user = "root";
$pass = "";
$db = "test";
$dbc = new PDO("mysql:host=" . $host . ";dbname=" . $db, $user, $pass);
$dbc->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$name = @$_POST['name'];
$age = @$_POST['age'];
$address = @$_POST['address'];
$gender = @$_POST['gender'];
$email = @$_POST['email'];
$dupesql = "SELECT * FROM students WHERE email = :email ";
$dupesql = $dbc->prepare($dupesql);
$dupesql->bindParam(':name', $email);
$dupesql->execute();
$num_rows = $dupesql->rowCount();
if($num_rows === 0)
{
echo "1";
$q = "INSERT INTO students(name, age, address, gender, email ) VALUES(:name, :age, :address, :gender, :email)";
$query = $dbc->prepare($q);
$query->bindParam(':name', $name);
$query->bindParam(':age', $age);
$query->bindParam(':address', $address);
$query->bindParam(':gender', $gender);
$query->bindParam(':email', $email);
$results = $query->execute();
}else{
echo "0";
exit;
}
?>
【问题讨论】:
-
$dupesql->bindParam(':name', $email);?它应该是 ':email' -
@1nflktd 哦,谢谢我错过了...把它放在答案中,这样我就可以投票了
-
为什么没有捕捉到异常?为什么 $_POST 前面有静音运算符?为什么使用 bindParam 而不是 bindValue?你知道这两者的区别吗?
标签: php mysql sql database pdo