繁体   English   中英

为什么我不能使用 PHP 准备语句从 SQL 行获取数据?

[英]Why can't I get data from SQL row using PHP prepared statements?

连接良好。 我可以插入数据库,并通过检查结果是否 > 0 来检查行是否存在,但我不能 select 行数据。 正在测试的 $email 在数据库中。 例如 1。

require 'connection/connection.php';
$email = "sample@sample.com";

$sql = "SELECT * FROM users WHERE user_email=?"; // SQL with parameters
$stmt = $conn->prepare($sql); 
$stmt->bind_param("s", $email);
$stmt->execute();
$result = $stmt->get_result(); // get the mysqli result
$user = $result->fetch_assoc(); // fetch data  
echo $user['user_name'];

前任。 2个

$email = "james@james.com";
$sql = "SELECT * FROM users WHERE user_email=?";
$stmt = mysqli_stmt_init($conn);
mysqli_stmt_bind_param($stmt, "s", $email);
mysqli_stmt_execute($stmt);

在每一行之后插入回声后,就到此为止了。 如果 echo 语句放在下一行之后,它将不会出现。

$result = mysqli_stmt_get_result($stmt);
if ($row = mysqli_fetch_assoc($result)) {
    $_SESSION['active_user_id'] = $row['user_id'];
} else {
    header("Location: https://example.com/");
    exit();
}

该问题已通过 cPanel 修复。 我不得不从“mysqli”切换到“nd_mysqli”。 这立即解决了问题。

我在这里找到了执行此操作的说明https://www.plus.net.com/php_tutorial/mysqli_mysqlnd.php

我希望这可以帮助其他人解决同样的问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM