我是PHP新手,有一个非常基本的问题。
如果我知道查询的结果只是来自MySQL中单行的单个值(单元格)我如何简化以下内容而无需通过一系列结果并且不增加SQL注入的风险?
在下面的示例中,我只需要回显一封电子邮件作为查询的结果。
我发现了一些帖子,建议使用fetch_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"];
非常感谢提前。
答案 0 :(得分:5)
只需执行以下操作即可避免关注列的调用:
<?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;