public static function getOneNewModel() { $model = new Wr1Order(); $var = '@tempid' . time() . mt_rand(1, 1000); $sql = "UPDATE ?n\n SET `status` = 'processing',\n `id`=({$var}:=`id`)\n WHERE `status` = 'new'\n ORDER BY `id`\n LIMIT 1"; self::$_msql->query($sql, $model->tableName()); $sql = "SELECT {$var} as id"; $result = self::$_msql->getRow($sql); $id = $result['id']; if (!$id) { return false; } $model->with('order')->findByPk($id); return $model->id ? $model : false; }
<?php include_once '../settings/autoload.php'; $msql = SafeMySQL::getInstance(); while ($model = Wr1Order::getOneNewModel()) { $payment = new PaymentAPI(); $payment->getOrderStatus($model->order, true); $model->delete(); }