昨天发现WHMCS西数、景安虚拟主机模块手动续费后不更新时间,原本在写这两个模块时,在续费后会通过API取得主机到期时间,并更新WHMCS数据库。查看官方文档才…
昨天发现WHMCS西数、景安虚拟主机模块手动续费后不更新时间,原本在写这两个模块时,在续费后会通过API取得主机到期时间,并更新WHMCS数据库。
查看官方文档才得知WHMCS 6.0已经废弃了以下数据库操作函数:
- select_query()
- update_query()
- insert_query()
- full_query()
新的版本中使用了Laravel 5.2框架的数据库组件,所以,对数据库的操作可以参考Laravel框架官方文档。
在WHMCS中,使用方法如下:
use Illuminate\\Database\\Capsule\\Manager as Capsule;foreach (Capsule::table(\'tblclients\')->get() as $client) { echo $client->firstname . PHP_EOL;}try { $updatedUserCount = Capsule::table(\'tblclients\') ->where(\'firstname\', \'John\') ->where(\'lastname\', \'Deo\') ->update( [ \'lastname\' => \'Doe\', ] ); echo \"Fixed {$updatedUserCount} misspelled last names.\";} catch (\\Exception $e) { echo \"I couldn\'t update client names. {$e->getMessage()}\";}
在我的模块中,主要是更新主机到期时间,代码如下:
Capsule::table(\'tblhosting\')->where(\'id\', $params[\'serviceid\'])->where(\'username\', $params[\'username\'])->update([\'nextduedate\' => $nextduedate,\'nextinvoicedate\' => $nextduedate,]);