我想知道哪种方法比那些sql方法更好(更快);
第一种方法:
public static function getlistusers($limit=88888888888888 ) {
$sql = "SELECT id,name FROM users order by id desc limit 0,$limit";
$st = mysql_query( $sql ) or die(mysql_error());
$list = array();
while ( $row = mysql_fetch_assoc($st) ) {
$picss = new users( $row );
$list[] = $picss;
}
return ( array ( "users" => $list) );
@mysql_free_result($st);
用于打印输出我使用
foreach()数组$ users;
第二种方法
$sql = "SELECT id,name FROM users order by id desc limit 0,$limit";
$st = mysql_query( $sql ) or die(mysql_error());
while ( $row = mysql_fetch_assoc($st) ) {
extract($row);
return "Id: $id and The Name is : $name";
}
@mysql_free_result($st);
}
===========
我想知道哪个更快,更安全的SQL加载。
此致 Al3in
答案 0 :(得分:2)
$sql = "SELECT id,name FROM users order by id desc limit 0,$limit";
$st = mysql_query( $sql ) or die(mysql_error());
while ( $row = mysql_fetch_assoc($st) ) {
extract($row);
return "Id: $id and The Name is : $name";
}
@mysql_free_result($st);
我怀疑这种方法是否有效。因为,即使您将其限制为1或100万,因为return "Id: $id and The Name is : $name";
,循环只会运行一次。因此,如果您要比较这个和其他方法,那么另一种方法显然会更好。
除非您分配给数组而不是返回。在这种情况下,第二种方法有一个不必要的函数调用extract
,它将两个变量放入堆中。
答案 1 :(得分:0)
两者基本相同。它们执行相同的查询并以相同的方式检索结果。第一种方法的优点是它返回一个数据数组列表,每个数组都代表数据库中的记录。所有人都可以以任何方式使用。第二种方法只返回一个字符串。整个while循环在那里没用。
所以第二个可能更快,因为它只检索一行,但从这里看起来更像是一个错误,而不是像实际的实现决定。