如何将布尔参数传递给php函数?

时间:2013-03-26 12:38:28

标签: php mysql boolean

当我试图获得“已售出”和“特色”的价值时,我什么也得不到。我做错了什么?

function list_products($sold = false, $featured = false) {
    global $link;
    $result = mysqli_query($link, "SELECT * FROM products product JOIN images image ON product.id = image.product_id WHERE product.main_image = image.id AND product.sold = $sold AND product.featured = $featured") or die(mysqli_error($link));
}

list_products(false, true);

编辑:如果我尝试回显$ sold或$ featured,则它们是空白的。应显示1或0。

2 个答案:

答案 0 :(得分:5)

使用PHP将booleans转换为字符串以获取mysql查询不是一个好主意 - true将变为“1”,false将变为“”。使用类似($boolVar ? 1 : 0)的内容。

答案 1 :(得分:-4)

在你的情况下,你可以在调用函数时给出参数数值(你想在查询中使用它们作为数字)。

尝试:

function list_products($sold = 0, $featured = 0) {
    global $link;
    $result = mysqli_query($link, "SELECT * FROM products product JOIN images image ON product.id = image.product_id WHERE product.main_image = image.id AND product.sold = $sold AND product.featured = $featured") or die(mysqli_error($link));
}

list_products(0, 1);