【发布时间】:2017-08-18 11:51:41
【问题描述】:
已阅读有关此问题的所有其他内容,但我找不到包含 php 变量的答案。
我想在我的数据库的某个日期之后选择前 100 条新记录。我无法让它工作。
$connStr =
'odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};' .
'Dbq='.$ini_project['general']['document_location'].';';
$dbh = new PDO($connStr);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$time = strtotime('6-8-2017 21:52:00');
$date = date('j-n-Y H:i:s',$time);
$sql1 = "SELECT TOP 100 * FROM `$table_name $table_number` WHERE Systeemtijd > `$date`";
$result = $dbh->query($sql1);
while($row = $result->fetch()) {
print_r($row);
}
我能够从表中的另一个字段中选择记录(例如 WHERE 值 > 200),但不是基于我表中的日期列。 我也试过不带 ``and:
$sql1 = "SELECT TOP 100 * FROM `$table_name $table_number` WHERE Systeemtijd > DATE `$date`";
全部报错:
致命错误:未捕获的异常“PDOException”,带有消息“SQLSTATE[42000]:语法错误或访问冲突:0 [Microsoft][ODBC] Microsoft Access Driver] 查询中的语法错误(缺少运算符) 表达式“系统提示 > 2017 年 6 月 8 日 21:52:00”。 (SQLPrepare[0] 在 ext\pdo_odbc\odbc_driver.c:206)' 在 C:\Bitnami\wampstack-5.6.30-1\apache2\htdocs\php7\DataBuilt\Larissa_Connector\data_uploader.php:65 堆栈跟踪:#0 C:\Bitnami\wampstack-5.6.30-1\apache2\htdocs\php7\DataBuilt\Larissa_Connector\data_uploader.php(65): PDO->query('SELECT TOP 100 ...') #1 {main} 抛出 C:\Bitnami\wampstack-5.6.30-1\apache2\htdocs\php7\DataBuilt\Larissa_Connector\data_uploader.php 在第 65 行
【问题讨论】:
-
不是mysql。它是 MS-access
-
我猜你必须在
$date周围使用单引号而不是反引号 -
您的表格中是否有空格或
$table_name $table_number应该是什么? -
哦,是的,它确实是 MS 访问。会改变它。是的,我的表名中有空格。访问文件和表是自动生成的,所以我无法更改。
-
@Jens single qoutes 不能解决问题。同样的错误。
标签: php sql date ms-access pdo