Php 如何在不使用多个查询语句的情况下为多个变量分配特定的dbs值?

Php 如何在不使用多个查询语句的情况下为多个变量分配特定的dbs值?,php,mysql,Php,Mysql,我目前正在创建一个管理面板,并将其编码为100%防傻瓜。您可以通过编辑数据库中的短语来编辑每一条信息 我知道的主要方法是使用: $c = $conn->query('SELECT phrase FROM phrases WHERE phrase_name = "corp_name"') or trigger_error($conn->error); $d = $c->fetch_array(); $phrase_corp_name = $d['phrase']; // "C

我目前正在创建一个管理面板,并将其编码为100%防傻瓜。您可以通过编辑数据库中的短语来编辑每一条信息

我知道的主要方法是使用:

$c = $conn->query('SELECT phrase FROM phrases WHERE phrase_name = "corp_name"') or trigger_error($conn->error);

$d = $c->fetch_array();

$phrase_corp_name = $d['phrase']; // "Corporation"
当我有几十个短语时,这不是很理想

问题是,当我尝试选择这样一个短语时,它不会起任何作用:

 $phrase_corp_name = mysqli_query($conn, "SELECT phrase FROM phrases WHERE phrase_name = 'corp_name'");
理想情况下,这应该输出“Corporation”,这是本例中“短语”的值。我假设代码是错的,但我不能对此掉以轻心

我在这里得到的错误是:

可恢复的致命错误:类mysqli_result的对象无法转换为。。。在线94


数据库中一行的单个变量是完全不必要的。为此,可以使用关联数组;他们非常适合这样的任务

短语
表中的所有结果放入数组中,然后使用键访问
短语

$c = $conn->query('SELECT phrase_name, phrase FROM phrases') or trigger_error($conn->error);
$phrases = [];
foreach ($c as $row) {
    $phrases[$row['phrase_name']] = $row['phrase'];
}
然后访问如下值:

echo $phrases['corp_name'];

作为补充说明,您最好启用mysqli错误报告,而不是自己手动执行。请阅读

您必须始终使用
fetch
来检索所选的值。你不能只打印
$conn->query()
的结果,它是一个中间对象。它现在输出什么?这与你关于获取几十个短语的问题有什么关系?@Barmar不是mysqli_query与conn-query()分开的吗?如果不是,我将如何使用$d来选择单个值而不仅仅是一列?不,
mysqli\u query
$conn->query
只是两种不同的编写相同内容的方法。mysqli允许您同时使用过程语法和OO语法,但它们完全可以互换。