【发布时间】:2019-02-18 06:17:14
【问题描述】:
我正在将旧的 php 5.6 代码转换为 7.2 并学习如何使用 PDO。 我已经到了陷入困境的地步,想向社区学习。
我创建了一个测试文件结构:
db.php:
<?php
try {
$conn = new PDO($initlocation, $username, $pwdata);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "worked"; // THIS WORKS ON THE SCREEN
}
catch(PDOException $e){
echo "Connection failed: " . $e->getMessage();
}
?>
test.php:
<?php
include("db.php");
$user_query='SELECT * FROM `users` WHERE `email`="user1.a@gmail.com"';
echo $user_query; // I GET THE QUERY PRINTED ON THE SCREEN
echo is_object($conn); // THIS IS 1 WHICH IS GOD
echo "<br>";
echo is_object($res); // THIS IS 1 WHICH IS ODD
try{
$res = $conn->query($user_query);
}
catch (Exception $e){
echo "Query failed: " . $e->getMessage(); // NOTHING
}
echo "<br>";
echo is_object($res); // NOTHING
$data_exists = $res->fetch();
if ($data_exists==1) echo "yes"; // NOTHING
?>
我也将测试方法留在了代码中,我渴望找到更好的解决方案来找出为什么查询没有显示任何内容。
目的是在数据库中找到电子邮件地址并给我一些反馈。提前感谢所有的 cmets,我只会从他们那里学习。
附加信息: 当我直接在数据库中运行 SQL 查询时,它确实给了我具有相同电子邮件的记录。
【问题讨论】:
-
您当前的输出是多少?您遇到了哪些具体错误?
-
目前我什么都没有,同时如果我直接在数据库中运行 SQL 查询,我会得到记录,因为数据库中确实存在电子邮件地址。
-
你有一堆
echo语句。如果您没有得到任何输出,则可能是 Web 服务器有问题,或者代码执行方式有其他问题。 -
@cegfault 感谢您抽出宝贵时间在问题中添加了输出。再次感谢您。
-
你应该抓到
PDOException,而不是Exception