gpt4 book ai didi

php - 使用 php 和 mysql 迭代 PDO 查询

转载 作者:行者123 更新时间:2023-11-29 06:07:33 25 4
gpt4 key购买 nike

我遇到了这个问题,我无法解决,我这样查询数据库:

$stmt = $this->pdo->prepare('SELECT customer_name FROM active_users WHERE a_id= ?');
$stmt->execute(array($a_id));
$c_name = $stmt->fetch(PDO::FETCH_OBJ);
API::writeToLog('CMD=leave , Customer_Name = ' . $c_name->customer_name, $customer_name);

此:$c_name->customer_name 给出以下错误:

Notice: Trying to get property of non-object

如何迭代我的数据库,fetch 和 fetchAll 之间有什么区别?我应该使用哪个?

这是数据库架构:

+---------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------------+--------------+------+-----+---------+-------+
| a_id | varchar(40) | NO | PRI | NULL | |
| token | varchar(64) | NO | | NULL | |
| nick | varchar(255) | NO | | NULL | |
| ip | varchar(32) | NO | | NULL | |
| customer_name | varchar(255) | YES | | NULL | |
+---------------+--------------+------+-----+---------+-------+

谢谢!

编辑:修正了一个拼写错误..

最佳答案

您应该添加一个 if 条件来检查记录是否存在。

$stmt = $this->pdo->prepare('SELECT customer_name FROM active_users WHERE udid = ?');
$stmt->execute(array($udid));
if ($c_name = $stmt->fetch(PDO::FETCH_OBJ)) {
API::writeToLog('CMD=leave , Customer_Name = ' . $c_name->customer_name, $customer_name);
}

对于fetchAll ,它一次返回所有记录。

正如 @Darragh 指出的,您的 $c_name 存在拼写错误。

关于php - 使用 php 和 mysql 迭代 PDO 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10797703/

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