Я искал и искал, но не могу найти то, что я делаю неправильно, так что вот мой первый вопрос StackOverflow.pdo query работает только в первый раз
Я пытаюсь сделать запрос к моей таблице сущностей, чтобы получить информацию о моей сущности, включая идентификатор для соответствующего адреса в таблице адресов, но я могу сделать только один запрос. Второй запрос дает ошибку «Нет выбранной базы данных». Для тестирования, я попытался использовать ту же самую функцию дважды, чтобы убедиться, что это не ошибка синтаксиса и это результат я получаю:
Имя: Волк, Дмитрий
второй попытки к такому же запросу:
база данных не выбрана
из этого кода:
$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;
}
Я понятия не имею, что я делать неправильно. Закрыть Курсор, похоже, не помогает. У кого-нибудь есть идеи? Спасибо.
Я думаю, что это может быть из-за исключение .. отладить исключение брошены .. только выход в $ е стеку и подтвердить, если у вас есть исключение, если вы пытаетесь подключиться снова DB .. – Dinesh