我该如何优化这个PHP SQL脚本?

时间:2017-03-07 22:18:07

标签: php mysql sql

我在下面使用这个SQL查询来获取我的.net许可系统,该系统通过用PHP编写的后端api许可用户。

现在我对SQL并不太聪明,但如果有人能指出我正确的方向来优化以下代码,那将会非常有帮助!

连接PHP:

<?php
define('DB_HOST', 'localhost');
define('DB_NAME', 'test');
define('DB_USERNAME', 'user');
define('DB_PASSWORD', 'Codwawmw2%');

$odb = new PDO('mysql:host=' . DB_HOST . ';dbname=' . DB_NAME, DB_USERNAME, DB_PASSWORD);
?>

SQL QUERY:

} elseif ($Action == "BackLogin"){
    $userID123 = $_GET['uid'];
    $hwid = $_GET['hwid'];
    $ip = getRealIpAddr();
    $pcname = $_GET['pcname'];
    $time123 = time();

    $GetRows = $odb->query("SELECT * FROM `Account` WHERE uid = '$userID123'");
    $row_count = $GetRows->rowCount();
    $count = $row_count;
    if($count == 0){
        $odb->exec("INSERT INTO `Account` (id, uid, cpukey, ip, pcname, online, function, lastlogon) VALUES(NULL,'$userID123','$hwid','$ip','$pcname','0','None','$time123')");
        $response = 'Not Banned';
    } else {
        $response = 'Not Banned';
    }

    if ($response == "Not Banned")
    {
        $finaleresponse = "Success";
        $odb->exec("UPDATE Account SET `online` = '1', `lastlogon` = '$time123', `ip` = '$ip' WHERE `uid` = '$userID123'");
    } 
    else
    {
        $finaleresponse = "Error";
    }
    echo Encrypt($finaleresponse);
}

顺便说一下,我需要优化脚本的原因是,每次它同时运行50多个客户端时,它将导致网站/服务器上的负载很重,并且将完全滞后于整个站点到无负载点。 ..

感谢任何可以提供帮助的人:)

1 个答案:

答案 0 :(得分:0)

请获取所选字段而不是*。快速获得结果。

$ GetRows = $ odb-&gt; query(“SELECT uid,cpukey,ip,pcname FROM Account WHERE uid ='$ userID123'”);