0

PDO クエリで if ステートメントのようなものを使用できるかどうか疑問に思っていました。私の現在のクエリは次のとおりです。

public static function UpdateTable( $id, $name, $variable )
{
    self::query("
        UPDATE  table
        SET     name = :name,
        WHERE   id = :id
    ", array(
        ":name" => $name,
        ":id" => $id
    ));
}

これによって準備され、実行されます:

public static function query($q, $params)
{
    $stmt = self::$con->prepare( $q );
    $stmt->execute( $params );
}

これはすべて正常に機能しますが、var $variable も取得しました。$variable が空でない場合、そのデータベース列を更新したいと思います。

「UpdateTable」関数でif/elseステートメントを作成できますが、これは非常に醜いものであり、Googleでこれを行う方法が他に見つかりませんでした。だから私は方法を学びたいです;)

4

2 に答える 2

0

PHP関数で実際に行う必要があります-$variable空の場合に備えてデータベースへの旅行を節約できます。ただし、誰かがあなたの頭に銃を向け、クエリで実行しない限り引き金を引くと脅した場合は、それを where 句に追加できます。

UPDATE  table
SET     name = :name,
WHERE   id = :id
AND     :variable IS NOT NULL

またはそのようなもの(PHPで動作したことがないため、null変数を渡すとSQL nullになるかどうかはわかりません...)

于 2013-09-17T18:16:06.970 に答える