du8794 2014-04-03 09:51
浏览 37
已采纳

处理来自PDO多查询的结果行

code derived from: PDO support for multiple queries (PDO_MYSQL, PDO_MYSQLND)

$db = new PDO("mysql:host=localhost;dbname=map1", 'root', 'root');

$sql = "
DROP TABLE IF EXISTS car;
CREATE TEMPORARY TABLE car (name (varchar 300), type (varchar 300)); 
INSERT INTO car(name, type) VALUES ('car1', 'coupe'); 
INSERT INTO car(name, type) VALUES ('car2', 'coupe');
SELECT * FROM car;
";

try {
    $stmt = $db->prepare($sql);
    $stmt->execute();
    $query_results = $stmt->fetchAll(PDO::FETCH_ASSOC);
}
catch (PDOException $e)
{
    echo $e->getMessage();
    die();
}

for ($i = 0; $i < count($query_results); $i++) {
    echo $query_results[$i]['name']."</br>";
}
echo "resultamount: ".count($query_results);

the result amount for this query returns 0 (and the loop, of course, does not initiate). how do I fix this so that 2 rows are returned?

  • 写回答

1条回答 默认 最新

  • dongliang2058 2014-04-03 10:37
    关注

    Do not add complexity out of nowhere and you always will have convenient and predictable result

    $db = new PDO("mysql:host=localhost;dbname=map1", 'root', 'root');
    $db->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
    
    $sql = "DROP TABLE IF EXISTS car;
    CREATE TEMPORARY TABLE car (name (varchar 300), type (varchar 300)); 
    INSERT INTO car(name, type) VALUES ('car1', 'coupe'); 
    INSERT INTO car(name, type) VALUES ('car2', 'coupe');";
    $db->exec($sql);
    
    $sql = "SELECT * FROM car";
    $stmt = $db->prepare($sql);
    $stmt->execute();
    $results = $stmt->fetchAll(PDO::FETCH_ASSOC);
    echo "resultamount: ".count($results);
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 用hfss做微带贴片阵列天线的时候分析设置有问题
  • ¥50 我撰写的python爬虫爬不了 要爬的网址有反爬机制
  • ¥15 Centos / PETSc / PETGEM
  • ¥15 centos7.9 IPv6端口telnet和端口监控问题
  • ¥120 计算机网络的新校区组网设计
  • ¥20 完全没有学习过GAN,看了CSDN的一篇文章,里面有代码但是完全不知道如何操作
  • ¥15 使用ue5插件narrative时如何切换关卡也保存叙事任务记录
  • ¥20 海浪数据 南海地区海况数据,波浪数据
  • ¥20 软件测试决策法疑问求解答
  • ¥15 win11 23H2删除推荐的项目,支持注册表等