如果sql查询无效或没有找到结果,如何将值设置为0?

时间:2011-10-24 16:49:06

标签: drupal

我使用以下代码从数据库预先填充金额的字段。

$amount = db_result(db_query('SELECT amount FROM {table} WHERE nid = %d', $fid));

$node->edit_user_fid = $amount;

如果查询没有找到任何内容,则只显示为空。如果没有结果,我怎样才能将值变为0?

4 个答案:

答案 0 :(得分:2)

$node->edit_user_fid = ($amount) ? $amount : 0;

或者也可写为

if (!$amount) {
    $node->edit_user_fid = 0;
}

或者如果您确定$ amout是数字(并且应该是),请使用

$node->edit_user_fid = intval($node->edit_user_fid);

答案 1 :(得分:1)

如果amount是int,则可以使用intval()或(int)强制转换,这样您将始终获得一个数值。

答案 2 :(得分:0)

db_result()在找不到与正在执行的查询匹配的表行时返回FALSE。只需将返回的值转换为整数。

$node->edit_user_fid = (int) db_result(db_query('SELECT amount FROM {table} WHERE nid = %d', $fid));

答案 3 :(得分:0)

PHP manual

-.-你可以使用=== false或=== 0来测试它是零还是假(测试类型和值) 无需测试false并重置为0或设置变量类型