ユーザーポイントと日付を変更するためのUPDATE SQLステートメント(Dibiエンジンなど)があります。その一言が必要です。問題は、 SQL レベル (PHP ではない) の 1 つの SQL クエリでIF ステートメントを使用およびチェックする方法がわからないことです。
だから私が望むのは、paid_to IS NULLの場合、それは次のようになるということです:
dbIndex::query("UPDATE s3n_users SET points = %i, paid_to = DATE_ADD(paid_to, INTERVAL $points MONTH) WHERE id_user = %i", $points, $id_user)->result();
それ以外の場合、paid_to IS NOT NULLの場合は次のようになります。
dbIndex::query("UPDATE s3n_users SET points = %i, paid_to = DATE_ADD(CURDATE(), INTERVAL $points MONTH) WHERE id_user = %i", $points, $id_user)->result();
PHP でこれを解決することはわかっていますが、もちろん、SQL で 1 つのステートメントを実行する方が高速です。PHP では、NULL または NOT NULL をチェックする前に SELECT を使用する必要があったためです。さらに別のことをしなければならないのはなぜですか?