我已经搜索过,但找不到我做错了什么,所以这是我的第一个StackOverflow问题。
我试图查询我的实体表以获取有关我的实体的信息,包括地址表上相应地址的ID,但我只能进行一次查询。第二个查询给出错误“没有选择数据库”。为了测试,我尝试使用完全相同的函数两次,以确保它不是语法错误,这是我得到的结果:
姓名:Wolf,Dmitri
第二次尝试相同的查询:
未选择数据库
来自此代码:
$entity_id=1;
$row = getEntityById($entity_id);
echo "<p>name:" . $row['entity_name'] . "</p>";
echo "<p>second try to same query:</p>";
$row = getEntityById($entity_id);
echo "<p>name:" . $row['entity_name'] . "</p>";
function dbConnect ()
{
require_once ('dogs.php');
try {
$conn = new PDO("mysql:host=$host;dbname=$db", $user, $pwd);
return $conn;
} catch (PDOException $e) {
return null;
}
}
function getEntityById ($id)
{
unset($conn);
$conn=dbConnect();
$sql = "select * from entity where id = $id";
$result = $conn->query($sql);
$error = $conn->errorInfo();
if (isset($error[2])) die($error[2]);
$numRows = $result->fetchColumn();
$result->closeCursor();
$theRow = null;
foreach ($conn->query($sql) as $row) {
$theRow = $row;
}
return $theRow;
}
我不知道我做错了什么。关闭光标似乎没有帮助。 有人有主意吗? 感谢。
答案 0 :(得分:1)
德米特里,只需更改require_once('dogs.php');要求('dogs.php');
问题是每次调用函数时都需要dogs.php文件,但是,正如您所知,require_once每次执行时只调用一次文件。只需改变它就可以正常工作。
干杯,