从服务器上的数据库获取输出,但不是 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
我有一个非常讨厌的问题....
我对这段代码的用法:我想通过 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