无法使用 PHP PDO 从 PHPMyAdmin 中选择数据
Posted
技术标签:
【中文标题】无法使用 PHP PDO 从 PHPMyAdmin 中选择数据【英文标题】:Failed to select data from PHPMyAdmin using PHP PDO 【发布时间】: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)
就行了。
【参考方案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);
?>
【讨论】:
以上是关于无法使用 PHP PDO 从 PHPMyAdmin 中选择数据的主要内容,如果未能解决你的问题,请参考以下文章
PHP:PDO查询不返回结果,但在phpmyadmin中同样的查询返回4个结果?
SQL 查询在通过 phpmyadmin 进行测试时工作正常,但在 PHP PDO 中尝试相同的事情时失败
mysql“日期之间”查询在 phpmyadmin 中有效,但 PDO 不返回任何内容