- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有以下查询,它包含一个临时表
。如果我使用临时表
,它会返回EMPTY ARRAY
。如果我删除了临时表
,它会返回适当的记录。
以下SQL查询
包含一个简单的查询,我刚刚创建了一个临时表
并插入了一些记录,我正在执行SELECT
查询在该临时表
中。我在 phpMyAdmin 中执行相同的代码,它返回适当的记录,但在 PDO
中返回 EMPTY ARRAY
.
示例和简单的 SQL 查询:
情况#1:使用临时表
- 返回空数组
<?php
$query = <<<SQL
CREATE TEMPORARY TABLE TempContact (
ContactId int,
FirstName varchar(30),
LastName varchar(30),
IsActiveContact Boolean
);
INSERT INTO TempContact (ContactId, FirstName, LastName, IsActiveContact)
SELECT CT.ContactId, CT.FirstName, CT.LastName,
CASE WHEN SL.SalesId IS NOT NULL THEN TRUE ELSE FALSE END AS IsActiveContact
FROM Contact CT
LEFT JOIN Sales SL ON CT.ContactId = SL.ContactId;
SELECT TC.* FROM TempContact TC;
SQL;
$stmt = $db->prepare($query);
$result = $stmt->execute() ? $stmt->fetchAll() : null;
?>
情况#2:没有临时表
- 返回适当的记录
<?php
$query = <<<SQL
SELECT CT.ContactId, CT.FirstName, CT.LastName,
CASE WHEN SL.SalesId IS NOT NULL THEN TRUE ELSE FALSE END AS IsActiveContact
FROM Contact CT
LEFT JOIN Sales SL ON CT.ContactId = SL.ContactId;
SQL;
$stmt = $db->prepare($query);
$result = $stmt->execute() ? $stmt->fetchAll() : null;
?>
我的实际代码非常复杂,为了易于理解,我添加了这个简单的查询。
我还使用 print_r($stmt->errorInfo());
检查了查询(案例 #1 查询)中是否有任何错误,但它返回一个 EMPTY ARRAY
(即我的查询没有错误);。此外,它不会抛出任何 PDOException
。
请帮助我,如何从临时表SELECT中获取记录
最佳答案
使用 PDO,您应该一次执行一个查询。它不像 SQL 控制台,您可以一次推送一堆语句。
您需要检查每个查询是否已成功完成,然后再继续下一个查询。如果您将其分成几个 prepare
/execute
对,它将按原样工作。第二个成功的原因是它由单个语句组成。
关于PHP PDO fetchAll() 在选择临时表时返回空数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46597502/
我有一个关于 PDO 的问题。 有区别吗 $sql = "SELECT * FROM pages"; $pdo = $this->db->query($sql); $result = $pdo->fe
这个问题最好的标题是“如何将字典列表转换为元组列表”,除非我不能 100% 确定这是正确的。 我正在修改我在网上找到的一个抓取工具,它使用 .fetchall() 从数据库中获取数据。 cur.exe
我有以下代码: $sql = "SELECT table.field, table2.field2 FROM table, table2"; $stmt
我想知道是否有人可以帮助阐明为什么这段 PHP 代码没有进入 for 循环?在 MySQL 中,查询返回我需要的相应行,但在这个 PHP 文件中,它无法将任何内容返回到数组中,因此不执行 foreac
我不断收到错误“AttributeError:‘Cursor’对象没有属性‘fetchAll’”。我的 rowCount 是 451,所有查询都正常。 我已经研究过这个问题,大多数错误都涉及在 cur
我有一个数据库,我正在尝试查询该数据库以获取要显示给用户的信息。我用过 fetch(PDO::FETCH_ASSOC) 检索单行之前或 $row = mysql_fetch_array($result
我完全是 PHP 和 MySQL 领域的新手。我正在读 Kevin Yank 的书,在做他的一个例子时,我遇到了一个奇怪的结果。我确信我遵循并正确输入了他书中写的代码,但我想知道为什么我没有得到相同的
我正在使用 zend 框架开发一个网络应用程序,我希望我的用户能够使用 zend fetchAll 函数从其他用户那里进行搜索。但它返回完整的专栏,我只想要几个值。这是我的示例代码: $query=$
我在 PHP 中有一个函数,它使用 SELECT SQL 查询。我在这样的查询中使用占位符变量 (?)。 (此占位符用于 mysql 数据库中的表名): protected function _fet
所以,这个网站上有很多这个问题的实例。 但是它们中的大多数都混合了一堆其他的东西,比如类、大量的参数等等。 我有一些非常基本的代码,不,真的,可能是最基本的: try { $connectio
我正在使用 fluentpdo - https://github.com/lichtner/fluentpdo 我正在尝试使用此代码将表中的结果循环到 html $bxslider = $fpdo->
这个问题在这里已经有了答案: Call to a member function on a non-object [duplicate] (8 个答案) 关闭 9 年前。 我不知道为什么它会返回 C
我正在使用 Python 从数据库中选择数据。 cur.execute("Select a,b,c from tab1") print "a,b,c" print "\n" data = cur.fe
同一个查询语句: fetchAll(): 复制代码 代码如下: array(1) {  
我想用 limit 做一个 fetchAll() 吗?您知道 symfony2 的实体管理器是否可行吗? 我当前的代码(获取所有,无限制): $repository = $this->getDoctr
我有一个从两个内部连接表中选择的 sql 查询。 select 语句的执行大约需要 50 秒。但是, fetchall() 需要 788 秒,并且只获取 981 个结果。这是查询和 fetchall
我有一个 php 类,用于通过 PDO 运行 SQL 语句。该类将 FetchAll 的数据存储到公共(public)变量中的该查询中,但问题是我不知道查询是什么,所以我最终在数据操作查询(INSER
我通过 ssh 连接到远程服务器,并在那里创建了两个 python 文件作为测试:一个用于创建数据库,另一个用于从中读取数据。 创建数据库的脚本 import os import sqlite3 #
我有这段有效的代码。数据库连接在文件的前面定义,与此处显示无关。安全地假设它工作正常 - 因为它是。 :-) try { $stmt = $conn->prepare("SELECT * FR
当我尝试执行以下代码时,我一直收到一个空数组: $this->DB->prepare('SELECT * FROM Articles WHERE Author = :username AND Time
我是一名优秀的程序员,十分优秀!