@Aptop

Как правильно использовать doctrine DBAL?

По документации(выборка)

1.
$sql = "SELECT * FROM users WHERE name = :name OR username = :name";
$stmt = $conn->prepare($sql);
$stmt->bindValue("name", $name);
$stmt->execute();

2. $stmt = executeQuery("SELECT * FROM users WHERE name = :name OR username = :name", [":name" => $name]);

Возникла небольшое затруднение. При использовании Phpstorm, второй метод перечеркивается с нотисом, что метод помечен как Internal

И в докблоке указано, что
PERF: Directly prepares a driver statement, not a wrapper.

Что это означает? Что лучше использовать первый подход?
  • Вопрос задан
  • 4577 просмотров
Решения вопроса 1
benbor
@benbor
Помог ответ - не забудь лайкнуть
Это значит, что вы используете внутренний метод библиотеки, который не должен использоваться нигде, кроме самой библиотеки. Из этого вытекает, что для большинства задач у Вас есть публичные методы, которые вы и должны использовать( смотрите ответ Сергей Сенкевич)
Что касается вашего вопроса "Как правильно использовать doctrine DBAL?" могу ответить точно: dbal переводится как абстрактный уровень базы данных, а вы фигачите в него нативные sql запросы... зачем тогда исопльзовать dbal?....
Почитайте доки/примеры по doctrine2 и жизнь станет гораздо проще.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Скорее всего, вы забыли $conn->
$stmt = $conn->executeQuery(
    "SELECT * FROM users WHERE name = :name OR username = :name",
    [":name" => $name]
);
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы