Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何优化mysql查询?_Php_Mysql - Fatal编程技术网

Php 如何优化mysql查询?

Php 如何优化mysql查询?,php,mysql,Php,Mysql,我使用这个查询从数据库中获取数据 如何优化和使用此连接的最佳代码 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( $gam

我使用这个查询从数据库中获取数据

如何优化和使用此连接的最佳代码

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`
connect();
$games_sql=mysql_查询(“选择gameid、mizbanid、Mihmmanid、score1、score2、gamedavar、gamestadium,现在从gameweek='$site_week'的游戏开始,现在ASC限制9”);
对于($i=0;$i

如何优化此代码以实现低
用户\u连接到数据库和高速度?

您可以始终使用cache和memcache作为优化解决方案。您可以缓存查询,对于其余的请求,您可以从缓存中弹出,为什么不查询数据库一次以捕获所有信息? 看看这个:

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:)替换。

好吧,总有一段路要走。您可以通过多种方式进行优化,使用php代码和查询,但是您不应该使用即将灭绝的东西

Warning
从PHP 5.5.0开始,此扩展已被弃用,将来将被删除。相反,应使用MySQLi或PDO_MySQL扩展。有关详细信息,请参阅MySQL:选择API指南和相关常见问题解答。此功能的替代方案包括:

mysqli_stmt_num_rows()
PDOStatement::rowCount()
如果只想计算行数,最好使用:-

从SomeTable中选择COUNT(*)

你不应该使用单引号,因为它


正如NullPointer所提到的,您不应该这样做。当前“@”错误控制运算符前缀甚至会禁用将终止脚本执行的关键错误的错误报告。这意味着如果您使用“@”若要抑制某个函数的错误,或者该函数不可用,或者输入错误,脚本将立即停止运行,并且没有说明原因。

whoa不要这样做。我的意思是不要使用@来忽略错误,这不是一个好选项。它们不再被维护。请参阅?了解,然后使用或-将帮助您确定是哪一个。如果您选择PDO,。请建议新的替换代码我是begginer我该怎么做?对于php性能,您可以阅读此代码和此代码您使用mysql\u fetch\u对象不使用的原因是什么:mysql\u fetch\u assoc或mysql\u fetch\u array?