MySql语句返回不正确的结果

时间:2013-10-08 14:13:39

标签: php mysql

我正在尝试从用户表中接收ID。 我有:

$retrieve_id = "SELECT userid FROM tb_users WHERE username = '$username'";
$user_id = intval(mysql_query($retrieve_id));

该语句应返回1,因为这是表中的值。但是,它返回6,即列名称的长度(userid)。当我查询其他表时也会发生这种情况。

如何才能从表中检索值?

5 个答案:

答案 0 :(得分:3)

您需要使用mysql_resultmysql_fetch_* 获取查询的实际结果。

$result = mysql_query("SELECT userid FROM tb_users WHERE username = '$username'");

if (!$result) {
    die('Could not query:' . mysql_error());
}

$user_id = mysql_result($result, 0); // outputs first row

注意,不推荐使用所有mysql_个功能,您应该使用mysqli_PDO。您的查询也对SQL注入开放。

答案 1 :(得分:1)

http://php.net/manual/en/function.mysql-query.php

mysql_query返回的资源不是值。

$retrieve_id = "SELECT userid FROM tb_users WHERE username = '$username'";
$result = mysql_fetch_assoc(mysql_query($retrieve_id));
$user = $result['userid'];

答案 2 :(得分:0)

A)不推荐使用mysql_ * B)确保您正在参数化您的输入 C)试试这个:

$result = mysql_query($retrieve_id);

$user_id=$result["userid"];

答案 3 :(得分:0)

function mysql_query返回select查询的资源类型。对于结果,您必须使用mysql_fetch_array或mysql_fetch_assoc函数。

$retrieve_id = "SELECT userid FROM tb_users WHERE username = '$username'";
$result = mysql_query($retrieve_id));
$row = mysql_fetch_assoc($result)) {
echo $row['userid'];

答案 4 :(得分:0)

检查mysql_query()上的php文档。它实际上返回resource,而不仅仅是您要查询的值。

但你甚至不应该使用mysql_query(),因为它在PHP 5.5中已被弃用,你不想在升级时重做代码,是吗?

相反,请使用mysqli_query(),它将返回mysqli_result个对象。然后,从该对象,您可以使用fetch_field()

检索您要查找的值