我有一个非常讨厌的问题......
我对此代码的用法:我想通过 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/