gpt4 book ai didi

php - PDO,MySQL SELECT 语句返回 bool 值 true?

转载 作者:行者123 更新时间:2023-11-29 05:40:51 27 4
gpt4 key购买 nike

只是在我的 MySQL 语句中使用 SELECT,试图获取列。

$last_visit = $db->prepare( 'SELECT `last_visit` FROM `visitors` WHERE `ip` = :ip' )
->execute( $arr_ip );
var_dump( $last_visit );

var_dump 的输出是 bool(true) 而不是我需要的数据。尝试 ->fetch() 只会引发错误。

我能做什么?这阻碍了我的整个项目,无论我在哪里看,我都不知道出了什么问题。正确的数据在数据库中,连接正确并且 INSERT 有效。

最佳答案

documentation 中所述, execute() 返回一个 bool 值。查看 fetch() 的示例看看你应该如何使用 PDO。

在您的情况下,代码应如下所示:

$stmt = $db->prepare( 'SELECT `last_visit` FROM `visitors` WHERE `ip` = :ip' );
$stmt->bindParam(':ip', $arr_ip);
$stmt->execute();
if($row = $stmt->fetch()){
$last_visit = $row['last_visit'];
}else{
// whatever you like to do if there's no result...
}

编辑:
针对您的评论的其他信息:

对于 UPDATEDELETE,你可以像你的例子一样做一个单行代码,因为你可能不需要结果(或者更确切地说只是 true/false 查看请求是否成功)。

对于SELECT,您需要fetch() 结果。您可以离开 bindParam() 并提供要执行的参数,就像您尝试过的那样,但如果没有 fetch(),您将无法获得结果。

关于php - PDO,MySQL SELECT 语句返回 bool 值 true?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6933079/

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