0

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

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。

4

2 回答 2

5

将布尔值转换为 PHP 中的字符串以进行 mysql 查询不是一个好主意 - true 将变为 '1' 而 false 将变为 ''。使用类似的东西($boolVar ? 1 : 0)

于 2013-03-26T12:43:16.703 回答
-3

在您的情况下,您可以在调用函数时为参数提供数值(无论如何,您都希望在查询中将它们用作数字)。

尝试:

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);
于 2013-04-08T09:13:30.870 回答