对您提出的一些显而易见的问题感到抱歉。我收到一个致命错误,但似乎没有什么问题,因为一切似乎都在工作。 (用户已注册)
我目前正在学习PHP,并且正在通过编辑现有代码来学习它。所以从一开始这不是我的代码。无论如何,该代码上周运行良好。我没有实际编辑它的记忆。现在,当我对其进行测试时,它给了我一个致命错误(标题中的错误)。它抱怨代码“ register.php(50):PDOStatement-> fetchAll()#1”
代码是:
<?php
include('database_connection.php');
if(isset($_SESSION['user_id']))
{
header("location:index.php");
}
$message = '';
if(isset($_POST["register"]))
{
$query = "
SELECT * FROM users
WHERE user_email = :user_email
";
$statement = $connect->prepare($query);
$statement->execute(
array(
':user_email' => $_POST['user_email']
)
);
$no_of_row = $statement->rowCount();
if($no_of_row > 0)
{
$message = '<label class="text-danger">Email Already Exits</label>';
}
else
{
$user_password = rand(100000,999999);
$user_encrypted_password = password_hash($user_password, PASSWORD_DEFAULT);
$user_activation_code = md5(rand());
$insert_query = "
INSERT INTO users
(user_name, user_email, user_password, user_activation_code, user_email_status)
VALUES (:user_name, :user_email, :user_password, :user_activation_code, :user_email_status)
";
$statement = $connect->prepare($insert_query);
$statement->execute(
array(
':user_name' => $_POST['user_name'],
':user_email' => $_POST['user_email'],
':user_password' => $user_encrypted_password,
':user_activation_code' => $user_activation_code,
':user_email_status' => 'not verified'
)
);
$result = $statement->fetchAll();
if(isset($result))
{
我正在尝试查看问题,但没有。如果有人可以找到问题,我将不胜感激。if isset代码之后,只有一个phpmailer函数。
我知道我不好,但我正在尝试学习,想知道我在哪里搞砸了。谢谢
答案 0 :(得分:0)
execute()
返回true。因此,您不必获取结果,而是这样做:
$dbSuccess = $statement->execute(
...
);
if ($dbSuccess === true) {
...
您还可以使用$statement->errorCode()
来检查INSERT是否成功。