【发布时间】:2012-08-24 06:08:33
【问题描述】:
我有这个查询来检查运动是否存在并且应该返回真或假。这个查询
function movement_performed_today($class_id, $client_id){
$class_id = (int)$class_id;
$client_id = (int)$client_id;
$query = mysql_query("SELECT COUNT(`movement`) FROM `completed_movements` WHERE `class_id` = '$class_id' AND `client_id` = '$client_id' AND `date` = CURDATE()");
$movement_performed = mysql_fetch_assoc($query);
$return = (mysql_result($movement_performed, 0) == 1) ? true : false;
var_dump ($return);
}
返回:
bool(false)
bool(false)
如果我替换此代码:
$return = result(mysql_result($movement_performed, 0) == 1) ? true : false;
var_dump ($return);
有了这个:
print_r ($movement_perfomed);
返回:
Array ( [COUNT(`movement`)] => 2 )
Array ( [COUNT(`movement`)] => 3 )
我的想法是否完全错误,因为这些数字不是零,它应该返回 true?
【问题讨论】:
-
为什么人们会做
(condition) ? true : false之类的事情?您的condition已经是一个布尔值,除了迷惑其他人查看您的代码之外,这样做没有任何意义。更严重的是,不要使用mysql_*函数,它们已被弃用。使用mysqli_*或 PDO。 -
我编辑了代码,因为结果不应该在那里。我对此很陌生,这个查询是基于我已经完成或被展示如何做的其他查询。
-
关于 PDO,我是否必须将我的数据库连接切换到 PDO 才能开始使用 PDO 查询?
-
@Colbyd 是的,当您创建一个新的 PDO 对象时,它会建立一个新的连接。在此处阅读文档:php.net/manual/en/class.pdo.php
-
@NullUserException 我正计划将我的所有 mysql 切换到 PDO,但认为我需要从我的 connect.php 文件开始并将其更改为 PDO,然后才能使用我的任何 PDO 查询。