我正在运行查询,我只需要获得1个值。我目前有,
$sql = "SELECT userId FROM UserAccountInfo WHERE loginName = '$userName'";
$result = $con->query($sql);
$row = $result->fetch_array(MYSQLI_NUM);
$userId = $row[0];
我需要一种更简单的方法来将userId变为变量。有一种方法我不必使用fetch_array的东西。我知道查询中只有一件事,所以为什么要使用数组。
答案 0 :(得分:3)
很抱歉让代码长度失望,但不是插入查询字符串,而是让代码对sql注入攻击保持开放,你应该使用prepared statements
据说这部分代码可能看起来像
$sql = "SELECT userId FROM UserAccountInfo WHERE loginName = ?";
if ($stmt = $mysqli->prepare($sql)) {
$stmt->bind_param('i', $userName);
$stmt->execute();
$stmt->bind_result($userId);
$stmt->fetch();
$stmt->close();
}
现在,如果你做了很多(从你的数据库中获取标量值)并且不想重复代码,那么编写一个包装函数或选择退出其中一个ORM框架。
答案 1 :(得分:0)
在查询结束时添加LIMIT子句。
WHERE loginName = '$userName' LIMIT 0,1"
-------------^^^^^^^^^^-
答案 2 :(得分:-1)
在SQL中使用LIMIT并使用此PHP
$result = $con->query($sql);
$row = mysql_fetch_assoc($result);
$userId = $row['userId'];