私は検索して検索しましたが、間違っていることを見つけることができないので、これが私の最初の StackOverflow の質問です。
アドレス テーブルの対応するアドレスの ID など、エンティティに関する情報を取得するためにエンティティ テーブルにクエリを実行しようとしていますが、クエリを 1 つしか作成できません。2 番目のクエリでは、「データベースが選択されていません」というエラーが表示されます。テストのために、構文エラーではないことを確認するためにまったく同じ関数を2回使用してみました。これが得られた結果です。
名前:ウルフ、ドミトリー
2 番目に同じクエリを試行します。
データベースが選択されていません
このコードから:
$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;
}
何が間違っているのかわかりません。Close Cursor は役に立たないようです。誰にもアイデアはありますか?ありがとう。