2017-06-02 48 views
1

这是我的代码:无法选择的phpMyAdmin数据使用PHP PDO

<?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。我的代码有什么问题?

+0

您运行查询 – Akintunde007

+0

你不后不取任何看起来像你调用该函数。如果你不调用它不会运行的函数 – RiggsFolly

+1

@Akintunde你可以像这样运行查询,查看手册http://php.net/manual/en/pdo.query.php中的第一个例子(实际上看起来像这样手册中该示例的修改版本)。正如Riggs所说,这很可能是因为函数没有被调用。 – Qirel

回答

1

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

<?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 

?> 
+0

工作过,谢谢。只有一个问题:请参阅此示例:https://www.w3schools.com/php/showphpfile.asp?filename=demo_db_select_pdo W3schools没有在任何位置调用函数“beginChildren”,它们的代码如何工作? –

+0

多数民众赞成在一个更复杂的例子比你给我们的 – RiggsFolly

+0

这一切都得到了它们的代码中的Iterator类的控制 – RiggsFolly

0

您不会从任何地方拨打功能printResult。 添加至您的代码printResult($conn);

0

调用函数

<?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); 
?>