【问题标题】:SELECT DISTINCT in mysqli prepared statement?在 mysqli 准备好的语句中选择 DISTINCT?
【发布时间】:2014-04-30 12:07:26
【问题描述】:

我正在尝试将 mysql 函数转换为 mysqli 准备好的语句。

但是,我无法让它工作,尤其是 select distinct。

mysql函数中的select distinct和mysqliprepared statement有什么区别吗?

这行得通:

    $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;
    }

【问题讨论】:

  • 顺便说一句,定义“不起作用”
  • @YourCommonSense,我的意思是它只是不返回任何值。它会在我的页面中创建空白空间,就好像它获取值一样,但它只是不打印出值。
  • 嗯,现在更清楚了。尝试从您的源中复制/粘贴准备好的语句处理代码没有错误。

标签: php mysqli


【解决方案1】:

mysql函数中的select distinct和mysqliprepared statement有什么区别吗?

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

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

【讨论】:

  • 干杯,我的 php 文件中包含所有这些,并且没有收到任何错误。
  • 如果答案(如您声称的)无法回答,为什么要发布答案?
  • @Qantas94Heavy 可以回答,并且回答。如果您看不到答案,最好退出该评论业务。
  • 什么鬼?您字面意思说“您也需要学习调试应用程序以使自己了解真正的原因并最终能够在 Stack Overflow 上发布可回答的问题”,暗示该问题无法回答。不要给我废话。
  • @Qantas94Heavy 这是 另一个 问题,仅由 OP 暗示。他真正的问题是“为什么我的代码不起作用”,而他更愿意问一个毫无意义的问题,如果两个驱动程序之间有任何区别。再说一遍:如果您无法阅读和理解问题 - 最好退出该评论业务。
猜你喜欢
  • 2017-05-23
  • 1970-01-01
  • 2012-12-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-18
  • 2011-03-07
  • 2014-06-11
相关资源
最近更新 更多