从“消息”中选择数据'表,没有错误,但它没有工作。 MYSQL,PHP

时间:2012-08-24 06:27:55

标签: php mysql

我正在尝试拥有一组数据,我可以从我的表中提取出来:

echo $message_data['content'];

所以我声明$ message_data:

     $message_data = message_data($_GET['id'],'id' ,'content', 'sender', 'addressee','support','date');

message_data()函数的编写方式如下:

function message_data($message_id) {
$data = array();
$message_id = (int)$message_id;

$func_num_args = func_num_args();
$func_get_args = func_get_args();

if($func_num_args > 1)
{
    unset($func_get_args[0]);

    $fields = '`'  .  implode('`, `' , $func_get_args) . '`';
    $data = mysql_fetch_assoc(mysql_query("SELECT $fields FROM `messages` WHERE `id` = $message_id") or die(mysql_error()));
    return $data;
} }

当我尝试提取有关用户的数据时,此功能的作用相似,我只是复制并粘贴它并略微调整它。 问题是,没有错误,是的,我确实用GET变量输入浏览器。 错误在哪里?或者,如果有更好的方法,我会很高兴听到。

非常感谢。

1 个答案:

答案 0 :(得分:2)

$data = mysql_fetch_assoc(mysql_query("SELECT $fields FROM `messages` WHERE `id` = $message_id") or die(mysql_error()));

这一行是问题,在括号内看起来foo()或bar()等于foo()|| bar(),这不是你想要的,所以把它放在这边:

$res = mysql_query("SELECT $fields FROM `messages` WHERE `id` = $message_id") or die(mysql_error());
$data = mysql_fetch_assoc($res);

编辑:

只是不要使用或喜欢这样,或者至少不要使用或那样的返回值。

通常,

A or B

如果A为假,则PHP将检查B;如果A为真,则无需检查B.

但我想

$c = A or B

实际上是

($c = A) or B