繁体   English   中英

mysql查询返回第一列中所有其他列的值

[英]mysql query returns the value in the first column for all the other columns

嗨,我对下表进行了查询,当我尝试获取每列中的值时,对于所有其他列,它从第一列返回相同的值。 详细说明
在我的数据库表中,我有以下内容:

owner_id = 21
pet_id = 1
name = fluffy
color = green
type = dog
sub_type = boxer
location = LA

但是,每当我尝试访问一列(例如name列)时,它都会返回21,这是owner_id列中与该pet_id对应的值。 我不确定为什么会这样。

$query = sprintf("SELECT * FROM `petAttributes` where pet_id ='%d'",$p_id);
 $result = performQuery($query);

 $owner_id = stripslashes(mysql_result($result,"owner_id"));
 $pet_id = stripslashes(mysql_result($result,"pet_id"));
 $name = stripslashes(mysql_result($result,"name"));
 $color = stripslashes(mysql_result($result,"color"));
 $type = stripslashes(mysql_result($result,"type"));
 $sub_type = stripslashes(mysql_result($result,"sub_type"));
 $loc = stripslashes(mysql_result($result,"location"));

有关我的环境的信息
PHP版本5.2.14
MYSQL版本5.0.67

我相信,如果您使用mysql_result,则在指定列之前,还必须指定行索引号(在您的情况下为0行?)。

$name = stripslashes(mysql_result($result, 0, "name"));

引用http://php.net/manual/en/function.mysql-result.php mysql_result具有如下参数: mysql_result($result,$rownumber,$fieldname or $fieldnumber)

这应该工作:

$query = sprintf("SELECT * FROM petAttributes where pet_id ='%d'",$p_id);
$result = performQuery($query);

$owner_id = stripslashes(mysql_result($result,0,"owner_id"));
$pet_id = stripslashes(mysql_result($result,0,"pet_id"));
$name = stripslashes(mysql_result($result,0,"name"));
$color = stripslashes(mysql_result($result,0,"color"));
$type = stripslashes(mysql_result($result,0,"type"));
$sub_type = stripslashes(mysql_result($result,0,"sub_type"));
$loc = stripslashes(mysql_result($result,0,"location"));

顺便说一句,如果您占用多行,mysql_result的效率将非常低。 然后,您应该使用mysql_fetch_row,mysql_fetch_array或mysql_fetch_assoc

您也可以;

仅第一行

$query = sprintf("SELECT * FROM petAttributes where pet_id ='%d'",$p_id);
$result = performQuery($query);
$row = mysql_fetch_array($result);

extract($row);

或所有返回的行;

$query = sprintf("SELECT * FROM petAttributes where pet_id ='%d'",$p_id);
$result = performQuery($query);
while($row = mysql_fetch_array($result))
{
  foreach ($row as $value)  echo $value."<br>";
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM