PHP无法从数据库中获取更大的数据
Posted
技术标签:
【中文标题】PHP无法从数据库中获取更大的数据【英文标题】:PHP Cannot Fetch larger data from database 【发布时间】:2020-03-27 04:14:54 【问题描述】:函数getUsers_Test()
只能检索10行限制的数据,而我的getUsers_Orig()
无法检索任何记录**我在数据库中的记录几乎是50行*。没有错误,没有警告。 (php 版本 5.5.12)
function getUsers_Test()
$sql = "SELECT TOP 10 a.user_name, a.user_level, a.user_status, b.* FROM user_access a, user_details b WHERE a.emp_code = b.emp_code ORDER BY a.id DESC";
try
$data = array();
$db = null;
$db = connectDB();
$stmt = $db->prepare($sql);
$stmt->execute();
$data = $stmt->fetchAll();
catch(PDOException $e)
$data['message'] = "Error: " . $e;
echo json_encode($data);
function getUsers_Orig()
$sql = "SELECT a.user_name, a.user_level, a.user_status, b.* FROM user_access a, user_details b WHERE a.emp_code = b.emp_code ORDER BY a.id DESC";
try
$data = array();
$db = null;
$db = connectDB();
$stmt = $db->prepare($sql);
$stmt->execute();
$data = $stmt->fetchAll();
catch(PDOException $e)
$data['message'] = "Error: " . $e;
echo json_encode($data);
function connectDB()
$dbuser = "myusername";
$dbpass = "mypassword";
$dbh = new PDO('odbc:databaseName', $dbuser, $dbpass);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
return $dbh;
【问题讨论】:
我认为这里的问题是我的 PHP 配置使用 PHP_PDO_ODBC 来容纳更大的获取数据。但还是想不通。 【参考方案1】:您可以尝试捕获一般异常而不是 PDOException
try
// ...
catch (\Exception $e)
// ...
【讨论】:
我认为这里的问题是我的 PHP 配置使用 PHP_PDO_ODBC 来容纳更大的获取数据。但还是想不通。【参考方案2】:这里的数据大小不是问题,我获取的数据有一个特殊字符(A'代表Ñ)。我曾经在我的连接中添加字符集 UTF-8,但我仍然无法获取它。
当我执行生成脚本并从 MSSQL 提取数据而不是备份和还原时会出现此问题。所以当我从 MSSQL 的 Generate Script 功能执行脚本时,字符发生了变化,我没有注意到。
【讨论】:
以上是关于PHP无法从数据库中获取更大的数据的主要内容,如果未能解决你的问题,请参考以下文章
无法在嵌套循环中使用 pandas 附加更大的数据帧。如何更改为 numpy 向量化?