非常简单的SQL函数返回布尔值1(true)而不是资源

时间:2011-07-05 11:25:07

标签: php mysql sql function

我有这个功能

function query($query)
{
     return mysql_query($query) or die(mysql_error())
}

但当我称之为

$last = query("SELECT * FROM jubox ORDER BY id desc LIMIT 45");

$ last返回1

 echo $last; //1

我做错了什么?

编辑:

我想返回RESOURCE id NOT DATA

5 个答案:

答案 0 :(得分:3)

目前,您正在尝试回显资源,如果有效则返回1(如果回显资源,则确实回显1)

您需要使用mysql_fetch_ *函数来获取数据

答案 1 :(得分:3)

请勿混用returnx OR y

<?php
$mysql = mysql_connect('localhost', 'localonly', 'localonly') or die(mysql_error());
mysql_select_db('test', $mysql) or die(mysql_error($mysql));
mysql_query('CREATE TEMPORARY TABLE jubox_so (id int auto_increment, primary key(id))') or die(mysql_error($mysql));

$last = query("SELECT * FROM jubox_so ORDER BY id desc LIMIT 45");
echo $last;

function query($query)
{
    $v = mysql_query($query);
    if ( !$v ) {
        die(myql_error());
    }
    return $v;
}

按预期打印(类似于)Resource id #6而不是1(这是由bool-&gt;字符串转换为echo引起的)

答案 2 :(得分:1)

查看mysql_fetch_ *函数。它们为您返回实际行。 mysql_query返回一个link_identifier,可用于获取结果。有关可用的不同功能,请参阅http://php.net/manual/en/book.mysql.php

答案 3 :(得分:0)

你回应结果吧?如果是select,这是一个mysql结果对象,而不是true或false(比如update或insert)。你得到的是result resource。您需要使用fetch_assoc函数来探索该结果。

答案 4 :(得分:0)

我认为你打印'1'的原因是因为你的错误查询结果然后它是你得到的die()的返回值。 检查您查询,复制并粘贴在phpMyAdmin中例如,并查找错误