【发布时间】:2012-06-29 20:54:46
【问题描述】:
我目前正在制作一种战斗迷你游戏系统,其中对手由基于条件的 AI 系统控制。这个系统应该是相当“可编写脚本的”,任何在网站上工作的人都可以使用非常简单的函数创建一个新的对手。
我正在处理一组函数,其中许多函数需要数据库中的信息才能运行。但是,函数的范围以及它不是基于 OOP 的事实意味着它无法轻松访问脚本中早先已经进行的查询。
鉴于这都是程序性的,在每个函数中运行查询是唯一有效的方法吗?
更具体地说,我有一个简单的查询:
$arrayBattle = mysql_fetch_array( mysql_query (
"SELECT * FROM `new_battles` WHERE
`id` = '$battle' AND `battle_status` = '0'
AND `user_id` = '".$ui['id']."'" ) );
你的建议?
【问题讨论】:
-
我建议不要使用
mysql_*函数 -
这不是我的偏好,它适用于没有 OOP 或数据库管理系统的小型站点。所有者坚称他们有一个足够好的净化功能,不需要 PDO 或类似的东西。
-
好吧,既然您甚至没有 DBMS(显然),您不妨继续使用
global -
能否在代码开始时进行一次查询,并将输出存储在一个数组中(或数组的数组,取决于输出);然后你可以在那里查看而不是重新查询。但它无法处理大量数据,并且如果在您的初始查询后更新数据,它将无法工作。
-
共享查询的函数怎么样?它有一个静态变量,作为一种缓存工作?静态 var 甚至可以是一个关联数组,使用一个键来存储值,该键使用可能会改变查询返回内容的参数来确定。
标签: php mysql artificial-intelligence procedural