【问题标题】:Failed to select data from PHPMyAdmin using PHP PDO无法使用 PHP PDO 从 PHPMyAdmin 中选择数据
【发布时间】:2017-11-03 21:43:03
【问题描述】:

这是我的代码:

<?php
//Connect to DB
$servername = "localhost";
$username = "root";
$password = "";

try {
    $conn = new PDO("mysql:host=$servername;dbname=users", $username, $password);
    // set the PDO error mode to exception
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch(PDOException $e) {
    echo "Connection failed: " . $e->getMessage();
}

function printResult($conn) {
    $sql = 'SELECT name FROM info';
    foreach ($conn->query($sql) as $row) {
        print $row['name'] . "\t";
    }
}
?>

但是,当我运行它时,什么都没有打印出来。怎么了?

是的,我的桌子不是空的。我 100% 能够使用 MySQLi 面向对象选择和打印数据,但不能使用 PDO。我的代码有什么问题?

【问题讨论】:

  • 运行查询后你没有获取任何东西
  • 你看起来不像你调用了这个函数。如果你不调用一个函数,它就不会运行
  • @Akintunde 您可以像这样运行查询,请参阅手册中的第一个示例php.net/manual/en/pdo.query.php(实际上看起来这是手册中该示例的修改版本)。正如 Riggs 所说,很可能是因为没有调用该函数。
  • 哦,我应该在哪里调用该函数?我是新手。在 foreach $sql = 选择命令之前?
  • 定义好printResult($conn)就行了。

标签: php mysql pdo phpmyadmin


【解决方案1】:

您不会从任何地方调用函数printResult。 添加到您的代码printResult($conn);

【讨论】:

    【解决方案2】:

    要运行一个函数,你必须调用它。

    <?php
    //Connect to DB
    $servername = "localhost";
    $username = "root";
    $password = "";
    
    try {
        $conn = new PDO("mysql:host=$servername;dbname=users", $username, $password);
        // set the PDO error mode to exception
        $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    }
    catch(PDOException $e) {
        echo "Connection failed: " . $e->getMessage();
        // and if this fails there is no point continuing so add an exit
        exit;
    }
    
    function printResult($conn) {
        $sql = 'SELECT name FROM info';
        foreach ($conn->query($sql) as $row) {
            print $row['name'] . "\t";
        }
    }
    
    printResult($conn);   // call the function
    
    ?>
    

    【讨论】:

    • 工作,谢谢。只有一个问题:看这个例子:w3schools.com/php/showphpfile.asp?filename=demo_db_select_pdoW3schools 没有在任何地方调用函数“beginChildren”,他们的代码是如何工作的?
    • 这是一个比你给我们的例子更复杂的例子
    • 这一切都由代码中的迭代器类控制
    【解决方案3】:

    调用函数

    <?php
    //Connect to DB
    $servername = "localhost";
    $username = "root";
    $password = "";
    
    try {
        $conn = new PDO("mysql:host=$servername;dbname=users", $username, $password);
        // set the PDO error mode to exception
        $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    }
    catch(PDOException $e) {
        echo "Connection failed: " . $e->getMessage();
    }
    
    function printResult($conn) {
        $sql = 'SELECT name FROM info';
        foreach ($conn->query($sql) as $row) {
            print $row['name'] . "\t";
        }
    }
    //call the function here
    printResult($conn);
    ?>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-02
      • 2014-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-11
      • 2020-01-08
      • 1970-01-01
      相关资源
      最近更新 更多