在mysqli准备语句中选择DISTINCT?

时间:2014-04-30 12:07:26

标签: php mysqli

我正在尝试将mysql函数转换为mysqli预处理语句。

然而,我在使用它时遇到问题,特别是select distinct。

mysql函数和mysqli预处理语句中的select distinct有什么区别吗?

这有效:

    $sql = "SELECT DISTINCT category FROM $storeShop";

    $result = mysql_query($sql) or die("Query failed : " . mysql_error());

    // For each result that we got from the Database
    while ($line = mysql_fetch_assoc($result))
    {
     $cvalue[] = $line;
    }
    // Assign this array to smarty...

    $smarty->assign('category', $cvalue);
// Assign this array to smarty...
$smarty->assign('$category', $cvalue);

这不起作用:

    $stmt = mysqli_prepare($db_conx, "SELECT DISTINCT category FROM $storeShop");
     $stmt->execute();
    $stmt->bind_result($category);

    /* fetch values */

    while ($line = ($stmt->fetch())) {
        $cvalue[] = $line;

    }

    // Assign this array to smarty...

    $smarty->assign('category', $cvalue);



  // Assign this array to smarty...
    $smarty->assign('$category', $cvalue);

我在准备好的语句代码中遗漏了什么吗?我需要做些什么来使其发挥作用?

提前致谢。

编辑:这也有效,但它没有准备好声明:

$sql = "SELECT DISTINCT category FROM $storeShop";
$query = mysqli_query($db_conx, $sql);
$productCount = mysqli_num_rows($query); // count the output amount
    while($line = mysqli_fetch_array($query, MYSQLI_ASSOC)){
        $cvalue[] = $line;
    }

1 个答案:

答案 0 :(得分:-3)

  

mysql函数和mysqli预处理语句中的select distinct有什么区别吗?

显然,没有。
API语法与SQL语法完全无关。

你的问题出在其他地方。您需要学习调试应用程序以使自己了解真正的原因,并最终能够发布有关您所遇到的真正问题的问题,而不是盲目地戳戳。您可以从这里开始:https://stackoverflow.com/a/22662582/285587