execute(a-6ren">
gpt4 book ai didi

php - PDO 查询不只从一个表中选择数据

转载 作者:行者123 更新时间:2023-11-29 02:50:07 24 4
gpt4 key购买 nike

我的 PDO 查询不是只从一个表中选择数据,所有其他表都工作正常。

选择查询:

<?php
header('Content-type: application/json');
require_once 'class.user.php';
$user_home = new USER();

$user_id = $_SESSION['userSession'];

$profile = $user_home->runQuery("SELECT * FROM user_profiles");
$profile->execute(array(":user_id"=>$user_id));
$profile_info = $profile->fetchAll(PDO::FETCH_ASSOC);

echo json_encode(array("profile_info" => $profile_info));
?>

如果我将选择更改为:$profile = $user_home->runQuery("SELECT * FROM tbl_users");

它工作正常。

数据库连接:

<?php
session_start();
class Database
{

private $host = "localhost";
private $db_name = "hoidja";
private $username = "root";
private $password = "";
public $conn;

public function dbConnection()
{

$this->conn = null;
try
{
$this->conn = new PDO("mysql:host=" . $this->host . ";dbname=" . $this->db_name, $this->username, $this->password);
$this->conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch(PDOException $exception)
{
echo "Connection error: " . $exception->getMessage();
}

return $this->conn;
}
}
?>

这是我要查询的表:

enter image description here

这是唯一一个不选择任何数据的表(有 3 行)。可能是什么原因?

最佳答案

忘记写where子句

你的查询是

SELECT * FROM user_profiles WHERE user_id =:user_id

否则执行这个没有用

$profile->execute(array(":user_id"=>$user_id));

已更新

根据以下消息,问题是由于 äö 等特殊情况而发生的。

在连接字符串中使用 array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8'")) 来避免这种情况

关于php - PDO 查询不只从一个表中选择数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36930140/

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