Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP:如何从MySQL中的单行中选择单个值,而不使用数组作为结果_Php_Mysql_Mysqli - Fatal编程技术网

PHP:如何从MySQL中的单行中选择单个值,而不使用数组作为结果

PHP:如何从MySQL中的单行中选择单个值,而不使用数组作为结果,php,mysql,mysqli,Php,Mysql,Mysqli,我是PHP新手,有一个非常基本的问题 如果我知道一个查询的结果只是MySQL中一行中的一个值(单元格)我如何简化下面的内容,而不必查看一系列结果,也不增加SQL注入的风险 在下面的例子中,我只需要回显一封电子邮件作为查询的结果 我发现有几篇文章建议使用fetch\u field的不同方法,但我不确定这里的最佳方法是什么,因为其中一些方法似乎已经非常陈旧或不推荐了 我的PHP: $stmt = $conn->prepare("SELECT email FROM Users WHERE use

我是PHP新手,有一个非常基本的问题

如果我知道一个查询的结果只是MySQL中一行中的一个值(单元格)我如何简化下面的内容,而不必查看一系列结果,也不增加SQL注入的风险

在下面的例子中,我只需要回显一封电子邮件作为查询的结果

我发现有几篇文章建议使用
fetch\u field
的不同方法,但我不确定这里的最佳方法是什么,因为其中一些方法似乎已经非常陈旧或不推荐了

我的PHP:

$stmt = $conn->prepare("SELECT email FROM Users WHERE userName = ? LIMIT 1");
$stmt->bind_param('s', $userName);
$stmt->execute();
$result = $stmt->get_result();
$arr = $result->fetch_assoc();
echo $arr["email"];

非常感谢。

只需这样做,您就可以避免关心专栏的名称:

<?php
$stmt = $conn->prepare("SELECT email FROM Users WHERE userName = ? LIMIT 1");
$stmt->bind_param('s', $userName);
$stmt->execute();

$email = $stmt->get_result()->fetch_object()->email;
echo $email;

谢谢。这里的结果总是必须是数组吗?我想我可以用fetch_field之类的东西来代替fetch(),这样结果就已经是一个值而不是一个数组了。没问题。啊,我明白了。检查我的编辑上面;这可能是一个很好的解决方案
fetch_object()
返回一个具有字段名作为属性的对象,因此可以通过
->
取消对该对象的引用,以仅获取此处的
email
字段。