gpt4 book ai didi

PHP PDO - 可以连接但查询不工作

转载 作者:行者123 更新时间:2023-12-05 09:24:51 24 4
gpt4 key购买 nike

我想摆脱旧 mysql 扩展的束缚,我只是在数据库中的表上测试 PDO 连接和简单查询。我似乎能够连接,(“连接成功” echo )但这是好时光结束的地方。我现在花了太多时间尝试开始使用 PDO。

<?php
$host = 'localhost';
$port = '3306';
$username = 'user';
$password = 'blabla';
$database = 'workslist';

try {
$db = new PDO("mysql:host=$host; port = $port; dbname = $database", $username, $password);
echo 'connection successful<br />';

$query = 'SELECT * FROM main';
$statement = $db->prepare($query);
$statement->execute();
$results = $statement->fetchAll();
$statement->closeCursor();

foreach($results as $r){
echo $r['work'] . '<br />';
}

} catch (PDOException $e) {
echo 'Error!: ' . $e->getMessage() . '<br />';
die();
}
?>

上面的有什么问题吗?

数据库名称是“workslist”,表名称是“main”,“work”是该表中的列之一。我使用的 PHP 版本是 5.3.4,我在 win7 上使用 wamp。我运行了 phpinfo() 并在 PDO 标题下启用了 PDO 驱动程序 mysql、sqlite。为了确保数据库和表确实存在,我已经在 MySQL 上进行了尝试,并且可以使用旧的 mysql_fetch_array() 方法返回行。我检查了 php.ini 文件以确保“extension=php_pdo...”行都没有注释。

干杯

最佳答案

这应该有效。

请仔细检查您在该数据库中是否确实有一个名为“main”的表。

请注意,在您 execute() 查询之前,PDO 不会发现此错误,如果您的查询有问题,默认行为是返回一个空结果,抛出异常。

要使 PDO 噪声更大,在构造 PDO 时添加 PDO::ERRMODE_EXCEPTION 选项:

$db = new PDO("mysql:host=$host;port=$port;dbname=$database", $username, $password, 
array(PDO::ATTR_ERRMODE=>PDO::ERRMODE_EXCEPTION)
);

现在检查您是否看到以下内容:

Error!: SQLSTATE[42S02]: Base table or view not found: 1146 Table 'workslist.main' doesn't exist

关于PHP PDO - 可以连接但查询不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8365584/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com