从服务器上的数据库获取输出,但不是 php 脚本

Get output from database on server, but not on php script

我有一个非常讨厌的问题....

我对这段代码的用法:我想通过 AJAX,每次单击进一步按钮时只有 5 条记录。我还没有……

这个脚本只需要从特定用户那里获取 5 条记录。

问题:

因此 sql 查询 运行 数据库没有任何问题。但是当我想在 PHP-script 中执行它时,我只从第一个查询中得到 counter() 并且第二个查询从 PDO 语句中得到一个空数组。

代码:

if (empty($_SESSION['counter']) || ($_SESSION['counter'] < 0)) {

      $sql = 'SELECT count(record.record_id) AS counter FROM record 
              LEFT JOIN recordbook ON record.record_id = recordbook.record 
              WHERE user = ?';

              $sth = $this->dbc->prepare($sql);
              $sth->execute(array($u_id['user_id']));
              $count = $sth->fetch();

              $_SESSION['counter'] = $count['counter'];
              var_dump($_SESSION);
          }
          $_SESSION['counter'] = $_SESSION['counter'] - 5;

          $sql = 'SELECT record.record_id, status, place, record.record AS records, comment, recorddate 
                  FROM record LEFT JOIN recordbook ON record.record_id = recordbook.record 
                  WHERE user = ? ORDER BY record.record_id DESC LIMIT ?,5';
          $sth = $this->dbc->prepare($sql);  
          $sth->execute(array($u_id['user_id'],
                                $_SESSION['counter']));

          $output = $sth->fetchAll();
}

希望有人知道如何解决这个问题...

table结构

Field | Type | Null | Key | Default | Extra
record_id | int(10) unsigned | NO | PRI NULL | auto_increment
status | varchar(200) | YES | NULL | 
place | varchar(200) | YES | NULL 
record | longtext | YES NULL 
comment | longtext | YES | NULL 
recorddate | timestamp | YES | CURRENT_TIMESTAMP 
attachment_id | int(10) unsigned | YES | MUL | NULL

好的,完成!没有错误....

需要将变量绑定到查询。好像是这样,只有prepare和execute,是不是不够清晰。因此,将 bindParam(用于整数)或 bindValue(用于字符串)添加到代码中,比它更顺利:)

已经在 PHP.net 和 PDOStatement 上看到 debugDumpParams(),您可以看到您的查询如何与您设置的参数一起工作。

这里是说明书http://php.net/manual/de/pdostatement.debugdumpparams.php