php - 如何缓存车辆品牌和型号的 mysql 查询?

标签 php mysql caching

我有一些 php 代码,可以查询年份和型号的 mysql 数据库。年份是硬编码在 php 中的,因为它是少量数据。但是,品牌和型号是根据之前的选择从数据库中查询的。 IE:选择 2012 只允许 2012 年生产的汽车品牌,然后在选择品牌后,会列出所选品牌生产的车型。下面是我创建查询以选择品牌的代码。在调用一段时间后如何缓存它以加速后续查询?或者说有可能吗?

我应该提到我的托管提供商不允许我打开 mysql 的缓存。这就是为什么我想在 php 中尝试一下。

$year = $_POST['year'];     // get the year from post - sent via ajax

$vehmakes = $cl->getmakes($year);
$output = '<option value="">-- All Makes --</option>';
while($row = mysql_fetch_row($vehmakes)){
$output .= '<option value="'.$row[0].'">'.$row[0].'</option>/n';
};

echo $output;

谢谢!

最佳答案

我只需将给定年份的逗号分隔的品牌列表写入平面文件,并在进行数据库查询之前检查该文件是否存在。您也许可以在文本文件中设置一个时间戳,并检查它是否已过期,如果是的话,创建一个新的缓存文件覆盖旧的。

if(file_exists($_POST['year'].'.txt'))
{
 // the file exists
 $select_options = explode(",",file_get_contents($_POST['year'].'.txt'));
// loop through the array for your options
}
else
{
 // make your db query
} 

关于php - 如何缓存车辆品牌和型号的 mysql 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27325134/

相关文章:

java - PHP DateTime到Java Date

mysql - SQLAlchemy 中与数据库无关的 to_char 函数

mysql - Visual Studio Community 2015 MySQL 数据源未出现

mysql 条件在同一行的两列的总和

sqlite - 使用 NSPersistentContainer 从 Core Data SQLite 存储回收空间?

javascript - 将多维数组从mysql传输到php再到javascript

php - 根据数据库中的值选中复选框

php - 调用未定义的方法 CI_Controller::Controller()

python - 修改函数时散列python函数以重新生成输出

mysql - 在什么情况下我应该使用缓存?