我在使用PHP服务器(制作游戏)的最快捷方式方面遇到了一些问题。
这是我在PHP中的功能:
function getSomeInfoByDataId($id) {
$arr = mysql_fetch_array(mysql_query("SELECT * FROM maps WHERE id='".$id."' LIMIT 1;"));
if(!empty($arr)) {
return $arr;
}
}
//$user - is array with all details from loged-in user
问题: 什么是加速PHP服务器的最佳和最快的方法?
方式1。
$myArray = array(
'map_id' => getSomeInfoByDataId($user['map'])['id'],
'map_name' => getSomeInfoByDataId($user['map'])['name'],
'map_pvp' => getSomeInfoByDataId($user['map'])['pvp'],
'map_img' => getSomeInfoByDataId($user['map'])['img']
);
方式2。
$mapInfo = getSomeInfoByDataId($user['map']);
$myArray = array(
'map_id' => $mapInfo['id'],
'map_name' => $mapInfo['name'],
'map_pvp' => $mapInfo['pvp'],
'map_img' => $mapInfo['img']
);
对不起,如果这个问题有点疯狂,但对我来说非常重要。
答案 0 :(得分:0)
选项1让您调用数据库四次,以获得第一次调用时获得的完全相同的信息。
从逻辑上思考,如何做同样的事情比做一次快四倍?
选项2确实是最快的,但是,您甚至不需要将结果存储在$myArray
中,因为您已在$mapInfo
中拥有该数据。
$myArray
带来的唯一好处就是拥有更容易阅读的#34;每个值的键,键已经足够容易阅读。
编辑:正如评论中所说,您正在使用不推荐使用的函数来调用您的数据库。请查看使用PDO prepared statements以避免SQL注入。