我使用这个查询从数据库中获取数据
如何优化和使用此连接的最佳代码?
connect();
$games_sql = mysql_query("SELECT gameid,mizbanid,mihmanid,score1,score2,gamedavar,gamestadium,now FROM games WHERE gameweek='$site_week' ORDER BY now ASC LIMIT 9");
for( $i = 0; $i < mysql_num_rows( $games_sql ); $i++ ) {
$gameid = @mysql_result( $games_sql, $i, 0);
$mizbanid = @mysql_result( $games_sql, $i, 1 );
$mihmanid = @mysql_result( $games_sql, $i, 2);
$score1 = @mysql_result( $games_sql, $i, 3);
$score2 = @mysql_result( $games_sql, $i, 4);
$gamedavar = @mysql_result( $games_sql, $i, 5);
$gamestadium = @mysql_result( $games_sql, $i, 6);
$now = @mysql_result( $games_sql, $i, 7);
$gametimeanddate = jdate("l d M y ساعت G:i", $now);
$gamedate = jdate("l d M y", $now);
$gametime = jdate("G:i", $now);
`connect()` function include `mysql_connect` & `mysql_select_db`我如何优化这段代码,以降低数据库的user_connection和提高速度?
发布于 2013-02-28 15:13:57
为什么不查询一次数据库来捕获所有信息呢?看看这个:
connect();
$sql = 'SELECT
gameid,
mizbanid,
mihmanid,
score1,
score2,
gamedavar,
gamestadium,
now
FROM games
WHERE gameweek = ' . $site_week . '
ORDER BY now ASC
LIMIT 9';
$query = mysql_query($sql);
if(mysql_num_rows($query)) {
while($Result = mysql_fetch_object($query)) { //loop trough results
print_r($Result); //prints the results.
echo $Result->gameid; //this is how you echo the data
}
}请注意,mysql_query函数已弃用,需要替换为mysqli :)。
发布于 2013-02-28 15:11:51
您可以始终使用缓存和memcache作为优化解决方案。您可以缓存您的查询,对于rest请求,您可以从缓存中弹出
发布于 2013-02-28 15:22:07
嗯,总会有很长的路要走..您可以通过多种方式进行优化,无论是使用php代码还是使用查询,但是您不应该使用即将消失的东西
Warning此扩展从PHP 5.5.0起已弃用,并将在将来删除。相反,应该使用MySQLi或PDO_MySQL扩展。有关更多信息,请参阅MySQL:选择应用程序接口指南和相关常见问题解答。此函数的替代方法包括:
mysqli_stmt_num_rows()
PDOStatement::rowCount()如果只想计算行数,最好使用:-
SELECT COUNT(*) FROM SomeTable
并且不应该使用带有benefit over double Quotes的单引号
正如NullPointer所提到的,您不应该使用use @ to suppress error message。目前,"@“错误控制操作符前缀甚至会禁用将终止脚本执行的关键错误的错误报告。在其他方面,这意味着如果你使用"@“来抑制来自某个函数的错误,而它要么不可用,要么输入错误,脚本就会死在那里,没有任何迹象表明原因。
https://stackoverflow.com/questions/15129436
复制相似问题