2012-01-07 44 views
1

是否有一种快速且肮脏的方法从一行中获取一列的值?现在我用这样的东西:从MySQL数据库的一行中读取一列

$result = mysql_query("SELECT value FROM table WHERE row_id='1'"); 
$row = mysql_fetch_array($result); 
return $row['value']; 

看起来必须能够巩固第二和第三条线。

这三行似乎很多只是从一行中的一列中获取值。我试过这个:

$ result = mysql_query(“SELECT value FROM table WHERE row_id ='1'”); return mysql_fetch_array($ result)['value'];

但这并不奏效。我只是试图找出是否有一个更简单,更重要的方式来获得这样的一个值。

+2

当你说“巩固第二和第三行”,你是否试图做一些像'sum'或'average'这样的聚合? – 2012-01-07 03:06:59

+0

我不知道为什么downvotes(问题*是*合法的),但你让行与线条的读者混淆。您可能需要编辑该问题。 – 2012-01-07 03:16:21

回答

5

使用本:

$result = mysql_query("SELECT value FROM table WHERE row_id='1'"); 
return mysql_result($result, 0); 
0

你想要吗?

$output = array(); 
while($row = mysql_fetch_array($result)){ 
    $output[] = $row['value']; 
} 
return $output; 
0

试试这个:

$result = mysql_query("SELECT value FROM table WHERE row_id='1'"); 
$row = mysql_fetch_row($result); 
return $row[0]; 
+0

谢谢。 HOwever,这基本上是一样的。您刚刚用索引替换了名称。 – 2012-01-07 03:19:44

+0

我真的不知道你怎么能比查询更快地查询并返回?如果您正在寻找一个安全的网站,那么现在也应该使用准备好的语句,以期得到更多的代码。 – Dan 2012-01-07 03:21:34

0

你应该寻找的是一个封装mecanism。例如,您可以创建一个对应于SQL表“用户”行的分类用户。然后,你可以得到他的ID只是一个单行:

$user->getID(); 

你也可以创建一个能够聚集所有的用户,然后用像这样一类:

$collection->getUserID("3435563"); 

可是真的有ISN”根据我的知识,这是一种更简单的方法。

0

,如果你想让它只返回一个值,使用限制关键字

/* Limits Results to 1 */ 
$result = mysql_query("SELECT value FROM table WHERE row_id='1' LIMIT 1;"); 
$row = mysqli_fetch_assoc($result) 
echo $row['value']; 
1

使用这种黑客)

$result = mysql_result(mysql_query("SELECT value FROM table WHERE row_id='1'"), 0); 
0

创建一个简单的函数来包含你的查找代码,您可以拨打用于单个语句中的数据库查找。

相关问题