PHP / MYSQL查询返回引用ID而不是INT值

时间:2011-07-13 18:07:55

标签: php mysql sql

我有一个带有此声明的PHP脚本:

$query = "SELECT type 
            FROM users 
           WHERE username = '$username'";

$result = $database->query($query);
if($result == 1) {
  echo "whatever";
  continue;
}

问题是if if从不运行,当我在if运行之前创建print语句来打印$ result时,它会输出一个Reference ID#。因此,结果永远不会== 1,因为它被分配了参考ID#。

我到底做错了什么?如何分配作为INT的'type'的值,而不是它的内容Reference ID#?

4 个答案:

答案 0 :(得分:7)

你必须先获取该行......

$query = "SELECT type FROM users WHERE username = '$username'";
$result = $database->query($query);
$row = mysql_fetch_assoc($result);
if($row['type'] == 1)
{
      echo "whatever";
}

答案 1 :(得分:3)

您需要使用mysql_fetch_assoc()或mysql_fetch_array()将结果导入数组:

$query = $database->query("SELECT type FROM users WHERE username = '$username'");
$result = mysql_fetch_assoc($query);

if($result['type'] == 1)
{
    echo "whatever";
    continue;
}

答案 2 :(得分:2)

<?php
$result = mysql_fetch_assoc($database->query($query));
$id = $result['type'];
if($type == 1)
{

答案 3 :(得分:0)

是。你必须检查它:

$query = "SELECT type FROM users WHERE username = '$username'";
$result = $database->query($query);
if($result)
{
    echo "whatever";
    continue;
}

这是一个布尔检查,但是...在php中我们有弱类型 - 一切都是真的,除了 false 0 ''< / strong>(空字符串),null等。

如果你想进行包括类型的良好布尔检查,那么你有:

if(bool_val === true)
{
..
}
// or
if(bool_val && is_bool(bool_val))
{
..
}

此查询对象在php中返回结果资源。你可能会收到#Resource ID,它是php代码中的某种指针。

如果您收到类似的内容(#Resource ID) - 这表示您的查询已正确传递且未发生错误。