首页 > 解决方案 > 如何使用 meta_keys 获取 meta_values

问题描述

我正在创建自定义 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 代码如何进行?

标签: phpmysqlmysqli

解决方案


读取所有数据:

SELECT meta_key, meta_value FROM settings

要读取多个值:

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

您正在解决的每个值都有一个?,还有一个额外的绑定。

请注意,在使用这样的变量查询时,PDO 更容易使用,所以如果你不是太熟悉,mysqli你可能想看看 PDO 是如何提供帮助的。


推荐阅读