Как получить meta_values, используя meta_keys, используя - PullRequest
0 голосов
/ 26 апреля 2019

Я создаю собственную CMS, поэтому у меня есть одна таблица базы данных, которая должна содержать все настройки моего веб-сайта ... пример (metakey => sitelogo, sitename, email и т. Д.) И другой столбец (metavalue => logo.png, Пример имени, martin@asd.com и т. д.).

Я закончил одним запросом, чтобы прочитать определенные данные из таблицы базы данных, но я не уверен, как прочитать все данные одним запросом или обновить несколько данных.в одном запросе.

Исправленный код:

<?php
$stmt0 = $conn->prepare("SELECT meta_value FROM settings WHERE meta_key IN ('site_name', 'login_logo', 'contact_email', 'instagram_token', 'instagram_photos', 'maintenance_mode', 'facebook_link', 'instagram_link', 'twitter_link', 'about_text', 'site_logo') ");
$stmt0->execute();
$stmt0->store_result();
$stmt0->bind_result($sitename, $login_logo, $email, $token, $photos, $maintenance, $facebook, $instagram, $twitter, $about, $sitelogo);
$stmt0->fetch();

echo $sitename;
?>

Но теперь у меня есть error_log ... Предупреждение PHP: mysqli_stmt :: bind_result (): Количество переменных связыванияне соответствует количеству полей в подготовленном операторе

Не могли бы вы предоставить пример PHP-кода, как действовать?

1 Ответ

1 голос
/ 26 апреля 2019

Чтобы прочитать все данные:

SELECT meta_key, meta_value FROM settings

Чтобы прочитать несколько значений:

SELECT meta_key, meta_value FROM settings WHERE meta_key IN (?,?,?...)

Если у вас есть одно ? для каждого разрешаемого значения и дополнительная привязка.

Обратите внимание, что с PDO гораздо проще работать при использовании таких переменных запросов, поэтому, если вы не слишком женаты на mysqli, вы можете посмотреть, как PDO может помочь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...