【发布时间】:2012-08-08 13:37:04
【问题描述】:
我一定已经阅读了这里所有类似的帖子,但仍然无法弄清楚为什么会发生这种情况。
我的代码:
$stmt = $this->db->stmt_init();
$stmt->prepare("SELECT Table1.id,Name,type,text,fname,lname FROM Table1, Table2 WHERE Table1.email = Table2.email AND type='text' AND Table1.Id=?");
$stmt->bind_param("i", $id);
$stmt->bind_result($legTxtId,$legTxtName, $legTxtType, $legTxtText, $legTxtFname, $legTxtLname);
$stmt->execute();
$results = array();
while($stmt->fetch())
{
$results[] = array(
'legTxtId' => $legTxtId , 'legTxtName' => $legTxtName , 'legTxtType' => $legTxtType ,
'legTxtText' => $legTxtText , 'legTxtFname' => $legTxtFname ,
'legTxtLname' => $legTxtLname );
}
$stmt->close();
return $results;
现在我在另一个函数中使用完全相同的代码,该函数在此函数之前调用,即使它返回一个字段,它也可以正常工作。
这个特别只返回 1 行,只有纯短文本(没有照片或任何东西),所以它不应该失败,因为它肯定小于 64M。
谁能看出问题出在哪里?
【问题讨论】:
-
你的
Table 1和Table 2有多少条记录? -
两个查询都应该只返回一行 atm ..第一个这样做根本不起作用..即使我删除第一个这也会失败并且我知道查询是有效的所以..
-
这些字段是否有
MEDIUMTEXT、MEDIUMBLOB或类似字段——能够存储大量数据?一个类似的问题是posted recently,您可能必须切换到 PDO 或启用 mysqlnd 才能使其工作。 -
你没有明白我的意思。此查询在内存中打开两个表实例,并将每个(表 1)行的电子邮件与另一个表中的相应条目进行匹配。这就是为什么我问你桌子的大小。如果两个表都包含大量数据,您可以求助于
mysqlnd或查找一些高效/优化的数据检索技术。 -
dev.mysql.com/downloads/connector/php-mysqlnd。我想上面@DCoder 提供的链接可能对您有所帮助。请通过它。