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'

那就是一个简单的打字错误。ISNULLIFNULL不同。
如果一个参数为空,则前者返回一个真值。
如果第一个参数为空,后者返回第二个参数,否则返回第一个参数。
如果将以下代码放入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'

10-06 11:41