有什么方法可以让我更轻松:
$query = mysql_query("SELECT full_name FROM users WHERE id = '$show[uID]'");
$row = mysql_fetch_array($query);
echo $row["full_name"] . " ";
因为我只需要获取full_name,然后我为fetch_array创建一个var,所以,有没有办法让这个更简单和回声?有一些关于list(),但我不确定..
答案 0 :(得分:2)
忽略可能的安全漏洞和DAL的有用性(请参阅@ deceze的answer),我建议使用mysql_result()
代替mysql_fetch_assoc()
(或* _array()或其他) :
$query = mysql_query("SELECT full_name FROM users WHERE id = '$show[uID]'");
$fullName = mysql_result($query, 0);
echo $fullName . " ";
不容易本身,但应该更符合查询的意图(在一个行中获取一个字段)。< / p>
答案 1 :(得分:1)
答案 2 :(得分:0)
可能不容易,但更安全:
$id = mysql_real_escape_string($show['uID']);
$query = mysql_query("SELECT `full_name` FROM `users` WHERE id = '".$id."'");
$row = mysql_fetch_array($query);
echo $row['full_name'];
哦,你可以使用intval创建id:
$id = intval($id);
答案 3 :(得分:0)
这可以使更多的DB问题更容易;
function mysql_fetch_scalar($res)
{
$arr = mysql_fetch_array($res);
return $arr[0];
}
$query = mysql_query("SELECT full_name FROM users WHERE id = '".intval($show[uID])."'");
$fullname = mysql_fetch_scalar($query);
echo $fullname . " ";
答案 4 :(得分:0)
不确定。
此外,您应该 - 通过这些重复的API函数调用来创建函数
像这一样简单的东西
function dbgetvar($query){
$res = mysql_query($query);
if (!$res) {
trigger_error("dbget: ".mysql_error()." in ".$query);
return FALSE;
}
$row = mysql_fetch_row($res);
if (!$row) return "";
return $row[0];
}
在配置文件中使用此功能,并在每次需要数据库中的值时使用:
echo dbgetval("SELECT full_name FROM users WHERE id = '$show[uID]'");
(我希望你有$ show [uID]转义)
当然也可以有2个类似的函数来返回行或行集。或者只是一个但附加参数。或者你可以将它们组合成课程......
你可以为它做甚至转义变量:
function dbgetvar(){
$args = func_get_args();
$query = array_shift($args);
foreach ($args as $key => $val) {
$args[$key] = "'".mysql_real_escape_string($val)."'";
}
$query = vsprintf($query, $args);
if (!$query) return false;
$res = mysql_query($query);
if (!$res) {
trigger_error("dbget: ".mysql_error()." in ".$query);
return FALSE;
}
$row = mysql_fetch_row($res);
if (!$row) return "";
return $row[0];
}
echo dbgetvar("SELECT full_name FROM users WHERE id = %s",$show['uID']);
答案 5 :(得分:0)
这就是你必须要做的。你可以将它包装在辅助函数中,如果你使用它的话,但是你可能想要缓存你得到的答案 - 我不认为这个名字会经常改变......
function echoName($user_id) {
$id = mysql_real_escape_string($user_id);
$query = mysql_query("SELECT full_name FROM users WHERE id = '$id'");
$row = mysql_fetch_array($query);
echo $row["full_name"] . " ";
}
// ...
echoName($show['uID']);