我在下面使用这个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多个客户端时,它将导致网站/服务器上的负载很重,并且将完全滞后于整个站点到无负载点。 ..
感谢任何可以提供帮助的人:)
答案 0 :(得分:0)
请获取所选字段而不是*。快速获得结果。
$ GetRows = $ odb-&gt; query(“SELECT uid,cpukey,ip,pcname FROM Account
WHERE uid ='$ userID123'”);