Hi如果数据库中的数据为空,我将使用mysqli替换表中的默认值。我已经在PHPmyAdmin上试过了,但在我的代码上没有用:(
下面是我的选择查询:
$query="SELECT pro_id, pro_name, unit_name, cat_name, IFNULL(quantity,'empty') AS quantity FROM products, unit, categories WHERE products.unit=unit.unit_id AND products.pro_cat=categories.cat_id";
最佳答案
如果,正如你的一条评论所指出的,你得到的错误是:
Incorrect parameter count in the call to native function 'ISNULL'
那就是一个简单的打字错误。
ISNULL
与IFNULL
不同。如果一个参数为空,则前者返回一个真值。
如果第一个参数为空,后者返回第二个参数,否则返回第一个参数。
如果将以下代码放入SqlFiddle中,您可以看到这一点:
-- DDL
create table xyzzy (plugh int);
insert into xyzzy (plugh) values (null);
insert into xyzzy (plugh) values (42);
select plugh, isnull(plugh) from xyzzy;
select plugh, ifnull(plugh,-1) from xyzzy;
select plugh, isnull(plugh,-1) from xyzzy;
前两个select语句的输出与预期一致,而第三个语句生成您描述的错误:
plugh isnull(plugh)
------ -------------
(null) 1
42 0
plugh ifnull(plugh,-1)
------ ----------------
(null) -1
42 42
Incorrect parameter count in the call to native function 'isnull'