如何在 PHP 的 PDO 查询中使用 ORDER BY?如果发现 NULL 字段,则会占用大量内存

问题描述 投票:0回答:0

我有这个 PHP 代码,在 Ubuntu 服务器 22.04 中:

$query = "SELECT * FROM info ORDER BY data DESC LIMIT 20";
$mdb_file = 'database.mdb';
$uname = explode(" ",php_uname());
$os = $uname[0];
switch ($os){
  case 'Windows':
    $driver = '{Microsoft Access Driver (*.mdb)}';
    break;
  case 'Linux':
    $driver = 'MDBTools';
    break;
  default:
    exit("Don't know about this OS");
}
$dataSourceName = "odbc:Driver=$driver;DBQ=$mdb_file;";
$connection = new PDO($dataSourceName);
$sth = $connection->prepare($query);
$sth->execute();
foreach($sth as $row) {
  print_r($row);
}

但是当它找到空字段时,它会返回过大的内存。

另一个问题是,当我使用 ORDER BY 时,它不起作用,它返回“Uncaught PDOException: SQLSTATE[]: <>: 1 Couldn't parse SQL”。

感谢您的帮助!

我尝试删除空字段并删除 ORDER BY,它有效,但这不是我想要的。

php sql odbc mdbtools
© www.soinside.com 2019 - 2024. All rights reserved.