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

标签 php mysql pdo

只是在我的 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/

相关文章:

php - 从 div 打开超链接,并将其加载到同一个 div

php - 使用MCRYPT_RIJNDAEL_256的PHP加密库对应的Powershell模块是什么?

javascript - 依赖下拉多个 .onchange

php - laravel 将大型 xml 文件解析到 mysql

mysql - 仅过滤属于第三张表中某物的用户

php - mysqli,OOP 与过程

php - 可以在用户定义的 php 函数中编写 try 和 catch 语句

php - 从数据库中获取数据时返回空数组

php - 如何在PHP中从MySQL当前 session 回显数据?

MySQL - 从另一个表中为 WHERE 子句选择数据