gpt4 book ai didi

PHP MySQLi 准备好的语句获取 - 第一行为空?

转载 作者:行者123 更新时间:2023-11-29 22:07:59 26 4
gpt4 key购买 nike

以下代码:

        $con = ConnectDB::getConnection();
if ($stmt = $con->prepare('---SQL here with 1 param---')) {
$stmt->bind_param('i', $this->id);
$stmt->execute();
$stmt->bind_result($device_id, $device_identifier);

while ($stmt->fetch()) {
$device = new Device($device_identifier, $device_id);
$all_devices[] = $device;
}

获取空结果?第一次循环时,$device_id 和 $device_identifier 为空,但 fetch() 方法返回 true,因此它会运行。然而 - 第二次迭代实际上包含了我的结果。

我可以简单地检查它们是否为空并忽略它们,但我真的不明白为什么它返回一个空对?我尝试直接在数据库上运行 SQL,但它只返回 1 个结果行?

有什么想法吗?

最佳答案

正如您想象的那样,MySQLi 预准备语句获取不会返回空的第一行。因为这样的行为没有什么意义。

您需要学习为您的断言创建正确的证明。
您发布的代码不正确。出于某种原因,你试图通过间接后果来判断一件事。 为什么不去审视一下事情本身呢?

    $con = ConnectDB::getConnection();
if ($stmt = $con->prepare('---SQL here with 1 param---')) {
$stmt->bind_param('i', $this->id);
$stmt->execute();
$stmt->bind_result($device_id, $device_identifier);

$stmt->fetch();
var_dump($device_identifier, $device_id);

--此代码将明确告诉您,您对空结果的假设是正确还是错误。

了解后,您可以开始调试,在您自己的代码中找到负责当前行为的位置。

希望有帮助。

关于PHP MySQLi 准备好的语句获取 - 第一行为空?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31973118/

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