获取1个查询值到变量

时间:2013-09-11 03:26:02

标签: php mysqli

我正在运行查询,我只需要获得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的东西。我知道查询中只有一件事,所以为什么要使用数组。

3 个答案:

答案 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'];