php - 为什么php没有返回结果,而mysql有?

标签 php mysql drupal-7

查询:

SELECT * FROM ac_journal WHERE datetime < (SELECT datetime FROM ac_journal WHERE jid = 1089 AND rid IN ('2','3','4')) ORDER BY datetime DESC LIMIT 1

当我在 phpmyadmin 中执行这个查询时,我得到一行 enter image description here

在我的代码中,它没有返回任何东西。

function ac_journal_get_previous_entry($jid)
{
  global $user; //1
  echo $jid; //1089
  echo "<br />'" . implode("','", array_keys($user->roles)) . "'"; //'2','3','4'

  if ($jid > 0)
  {
    $result = db_query("SELECT * FROM {ac_journal} WHERE datetime < (SELECT datetime FROM {ac_journal} WHERE jid = ? AND rid IN (?)) ORDER BY datetime DESC LIMIT 1", array($jid, "'" . implode("','", array_keys($user->roles)) . "'"));
    $obj = $result->fetchAll();
    echo $result->rowCount(); //0

    if (is_array($obj) && count($obj) > 0)
    { 
      echo "HERE"; //never gets here
      return "<a href='https://example.com/journal/" . $obj[0]->jid . "'>Previous</a>";
    }
  }
}

最佳答案

我不得不把它改成这样:

$result = db_query('SELECT * FROM {ac_journal} WHERE datetime < (SELECT datetime FROM {ac_journal} WHERE jid = :jid) AND rid IN (:rid) ORDER BY datetime DESC LIMIT 1', array(':jid' => $jid, ':rid' => array_keys($user->roles)));

关于php - 为什么php没有返回结果,而mysql有?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28184044/

相关文章:

javascript - Ajax调用插入

mysql从两个相同的表中获取结果

php - 如何用当前用户(登录用户)切换用户并备份MySql中的数据库?

php - 带连接的 SQL SELECT 可排除用户已回答的项目

php - 我在哪里可以下载 php5apache2_2.dll?

php - 如何在 yii2 mysql 中提取这些数据

php - 使用数据库中存储的 unicode 字符生成 PDF 文档

Drupal 7 : Make a custom module create a menu item in the user menu

drupal - 带有 zen 主题的 drupal7 中缺少管理覆盖层

mysql - SQLSTATE[HY000] : General error: 1030