gpt4 book ai didi

php - PDO 变量在查询中不起作用,但静态值有效

转载 作者:行者123 更新时间:2023-11-30 23:54:16 25 4
gpt4 key购买 nike

所以我的情况是这样的,我正在尝试根据 isset 获取的 id 获取用户详细信息,但是包含 $_GET 值的 变量如何不这样做'在查询中不起作用 但是当我将静态值放入 pdo 查询时它会起作用并显示结果。我在查询之前通过对变量 $user 执行 var_dump 进行了检查,它显示了正确的值,但在查询中不起作用。以下是我正在使用的代码:

public function profile_view($user_id = null) {
$user = $user_id;
$stmt = $this->_db->prepare('SELECT memberID,username,email,profile_pic,active FROM members WHERE memberID = :user_id AND active="YES"');
$stmt->execute(array(':user_id'=>$user));
while($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$user_det = (object) array('username'=> $row['username'],'email'=>$row['email'],'profile_pic'=>$row['profile_pic'],'id'=> $row['memberID'],'active'=>$row['active']);

return $user_det;
}


}

函数是这样调用的(profile_view 函数是 User 类的子类,所以 $user 是 User 类):

 $view_profile = $user->profile_view($_GET['u']);

上面的代码返回 null 但当我将静态值:5 放在 $stmt->execute 中的 $user 位置时返回我需要的整个用户的详细信息,但它不能使用变量,这让我很困惑。

最佳答案

您更正了 PHP 代码。 SQL 查询错误(可能)。我不知道你的 SQL 表。

示例 php 代码手册。此链接http://php.net/manual/en/pdostatement.execute.php

<?php
/* Execute a prepared statement by passing an array of insert values */
$calories = 150;
$colour = 'red';
$sth = $dbh->prepare('SELECT name, colour, calories
FROM fruit
WHERE calories < :calories AND colour = :colour');
$sth->execute(array(':calories' => $calories, ':colour' => $colour));
?>

您的 SQL 代码编辑和测试代码。

关于php - PDO 变量在查询中不起作用,但静态值有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27649500/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com