我正在使用PHP进行非常具体的SQL查询。例如,我有用户的ID号,但我需要他们的名字。所以我从那个表中用ID号做一个sql查询,以便返回名字。
$result = mysql_query("SELECT name FROM users WHERE userID=$thisuserid",$db);
现在我想用它。将结果变成我可以使用的变量的最简洁方法是什么?
编辑: 我希望这不是答案:
$rowCheck = mysql_num_rows($result);
if ($rowCheck > '0') {
while ($row = mysql_fetch_assoc($result)){
foreach ($row as $val){
$username = $val;
}
}
}
答案 0 :(得分:2)
我曾经使用过这样的东西来保持简短:
list($name) = mysql_fetch_row(mysql_query("SELECT name FROM users WHERE userID=$thisuserid",$db));
echo $name;
答案 1 :(得分:0)
你应该使用MySQLi:
$db = new MySQLi($host,$user,$pass,$db);
$query = $db->query('SELECT name FROM users WHERE userID='.$thisuserid);
$result = $query->fetch_object();
echo $result->name;
如果您使用SELECT *
,那么您也可以通过$ result-> {field_name}
答案 2 :(得分:0)
在我看来,获取任何SQL结果的最佳方法是mysql_fetch_assoc()
。要使用它,你会做这样的事情:
$result = mysql_query("SELECT name FROM users WHERE userID=$thisuserid",$db);
while ($row = mysql_fetch_assoc($result)) {
echo $row['name']; // You get an array with each column returned from your query.
}
尽管如此,MySQL扩展已经replaced for MySQLi,这被认为更快,更实用。它具有OOP和结构绑定,并且更多地考虑了您的服务器设置。
答案 3 :(得分:0)
$result = mysql_query("SELECT name FROM users WHERE userID=$thisuserid",$db);
if (!$result) {
echo 'Could not run query: ' . mysql_error();
exit;
}
$name = mysql_fetch_row($result)[0];