Php PDO查询未返回任何结果,但查询有效

Php PDO查询未返回任何结果,但查询有效,php,mysql,sql,pdo,Php,Mysql,Sql,Pdo,好的,这里有一些我已经为你们调试过的信息 数据库已连接 查询(使用echo打印时)在PHPMYADMIN中运行良好,返回7行 查询(与旧的mysql_查询函数一起使用时效果良好) 我已经读到,PDO SQL不允许同时进行多个查询。。。但这不是一个单一的查询吗?如果不是,我想我必须回到旧版本 以下是查询(使用echo从PHP文件打印) 其中,在PHPMYADMIN上返回以下内容: Showing rows 0 - 6 (7 total, Query took 0.0004 sec) [Date:

好的,这里有一些我已经为你们调试过的信息

  • 数据库已连接
  • 查询(使用echo打印时)在PHPMYADMIN中运行良好,返回7行
  • 查询(与旧的mysql_查询函数一起使用时效果良好)
  • 我已经读到,PDO SQL不允许同时进行多个查询。。。但这不是一个单一的查询吗?如果不是,我想我必须回到旧版本

    以下是查询(使用echo从PHP文件打印)

    其中,在PHPMYADMIN上返回以下内容:

     Showing rows 0 - 6 (7 total, Query took 0.0004 sec) [Date: 2014-05-26 - 2014-05-13]
    
    这是密码

    try {
        $count=0;
        $statement = $SQLConnection->prepare('
            SELECT `Date`, SUM(`Amount`), `Quantity Sold` FROM ' . $SQLConfig["SQL_DATA_TABLE"] . '
            WHERE Date BETWEEN DATE_SUB(CURDATE(), INTERVAL 15 DAY) AND CURDATE() 
            GROUP BY Date ORDER BY Date DESC');
        $statement->execute();
    
        //echo "<tr><td>test</td><td>test</td><td>test</td></tr>";
    
        foreach($statement as $row) {
            echo "Row: " . $count;
            $count++;
        }
    } catch (PDOException $e) {
        die("Error!: " . $e->getMessage() . "<br/>");
    }
    
    然后将foreach更改为

    while($row = $statement->fetch()){
    
    但是,它仍然没有返回任何行

    我决定最后一次返回到另一个系统,同时保持查询未经编辑,并且使用以下方法可以完美地工作:

    mysql_select_db($SQLConfig["SQL_DATABASE"])or die("Error: Cannot locate database");
    $statement = 'SELECT `Date`, SUM(`Amount`), `Quantity Sold` FROM ' . $SQLConfig["SQL_DATA_TABLE"] . '
        WHERE Date BETWEEN DATE_SUB(CURDATE(), INTERVAL 15 DAY) AND CURDATE() 
        GROUP BY Date ORDER BY Date DESC';
    $results = mysql_query($statement);
    while($row = mysql_fetch_array($results)) {
    
    使用SQLi尝试了相同的代码,结果为零。见鬼:/I我正试图转换我的项目,使其安全,并在必要时使用准备好的语句,但这使它变得极其困难

    使用Sqli的代码

    if($statement = $SQLConnection->prepare('
        SELECT `Date`, SUM(`Amount`), `Quantity Sold` FROM ' . $SQLConfig["SQL_DATA_TABLE"] . '
        WHERE Date BETWEEN DATE_SUB(CURDATE(), INTERVAL 15 DAY) AND CURDATE() 
        GROUP BY Date ORDER BY Date DESC')) 
    {
        $statement->execute();
        $statement->bind_result($result);
        $statement->fetch();
        echo "Row: " .$result;
    }
    
    根据要求,$SQLConnection是什么:

    <?php
        $configuration = include_once 'Configuration.php';
    
        $PDOConnection = new PDO('mysql:host' .$Configuration["SQL_HOST"]. ';dbname='.$Configuration["SQL_DATABASE"], $configuration["SQL_USERNAME"], $configuration["SQL_PASSWORD"]);  
        $NormalConnection = mysql_connect($Configuration["SQL_HOST"], $Configuration["SQL_USERNAME"], $Configuration["SQL_PASSWORD"]) or die("Error: Failure to connect to host.");
        $SQLiConnection = new mysqli($Configuration["SQL_HOST"], $Configuration["SQL_USERNAME"], $Configuration["SQL_PASSWORD"], $configuration["SQL_DATABASE"]);             
    
        if(mysqli_connect_errno()) {
           echo "Connection Failed: " . mysqli_connect_errno();
        }
    ?>
    


    $statement->execute()之后添加
    $statement->fetchAll()同时尝试SQLi和PDO,我将发布back@Daan两者的输出都没有变化。此外,PDO还需要fetchAll(PDO::FETCH_ASSOC)version@ChristianTucker
    var_dump($statement->fetchAll(PDO::FETCH_ASSOC))的输出是什么?似乎您应该向我们展示什么是SQLConnection,以及这个对象的类是如何定义的
    
    if($statement = $SQLConnection->prepare('
        SELECT `Date`, SUM(`Amount`), `Quantity Sold` FROM ' . $SQLConfig["SQL_DATA_TABLE"] . '
        WHERE Date BETWEEN DATE_SUB(CURDATE(), INTERVAL 15 DAY) AND CURDATE() 
        GROUP BY Date ORDER BY Date DESC')) 
    {
        $statement->execute();
        $statement->bind_result($result);
        $statement->fetch();
        echo "Row: " .$result;
    }
    
    <?php
        $configuration = include_once 'Configuration.php';
    
        $PDOConnection = new PDO('mysql:host' .$Configuration["SQL_HOST"]. ';dbname='.$Configuration["SQL_DATABASE"], $configuration["SQL_USERNAME"], $configuration["SQL_PASSWORD"]);  
        $NormalConnection = mysql_connect($Configuration["SQL_HOST"], $Configuration["SQL_USERNAME"], $Configuration["SQL_PASSWORD"]) or die("Error: Failure to connect to host.");
        $SQLiConnection = new mysqli($Configuration["SQL_HOST"], $Configuration["SQL_USERNAME"], $Configuration["SQL_PASSWORD"], $configuration["SQL_DATABASE"]);             
    
        if(mysqli_connect_errno()) {
           echo "Connection Failed: " . mysqli_connect_errno();
        }
    ?>
    
    createIndex($PDOConnection, $Configuration);
    
    function createIndex($SQLConnection, $SQLConfig) {