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

标签 php mysql left-join limit

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

我对此代码的用法:我想通过 AJAX,每次单击进一步按钮时只需 5 条记录。我还没到那一步......

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

问题:

因此 SQL 查询在数据库上运行没有任何问题。但是当我想在 PHP 脚本中执行此操作时,我仅从第一个查询中获取 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();
}

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

表结构

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

最佳答案

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

需要将变量绑定(bind)到查询。看来只有prepare和execute还不够清晰。因此,在代码中添加bindParam(对于整数)或bindValue(对于字符串),这样就可以顺利进行:)

已经在 PHP.net 上看到过,并且通过 PDOStatement 上的 debugDumpParams() 您可以看到您的查询如何使用您设置的参数。

这里是手册 http://php.net/manual/de/pdostatement.debugdumpparams.php

关于php - 从服务器上的数据库获取输出,但不在 php 脚本上获取输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44971757/

相关文章:

PHP 不加载 mcrypt 扩展

php - 根据现在的时间,从 PHP 的 DB 中获取下一个时间(以 VARCHAR 形式)

php - 插入 mysqli 不工作

php - 无法在 SQLite 表中插入字符串,但可以插入数字

php - PDO 不能绑定(bind)两个属性

mysql - 如何删除 MySQL 的 utf8 字符集不支持的字符?

java - 使用预准备语句的 SQL 语法错误

postgresql - 加入对 jsonb 字段的查询

MYSQL 左连接 'LIKE'

mysql - 左连接返回非所有行