sql >> データベース >  >> RDS >> Mysql

PHPで連想配列を使用してUPDATEステートメントを作成する

    public function update($tableName, $values, $conditions = array()) {
        if (empty($values)) {
            throw new Exception('Nothing to update');
        }
        $valueStrings = array();
        foreach ($values as $name => $value) {
            $valueStrings[] = $name . ' = :' . $name;
        }
        $conditionStrings = array();
        foreach ($conditions as $column => $value) {
            $conditionString = $column;
            $conditionString .= is_array($value)
                ? ('IN ("' . implode('","', $value) . '")')
                : (' = "' . $value . '"')
            ;
            $conditionStrings[] = $conditionString;
        }
        $sql = 'UPDATE ' . $tableName
            . ' SET ' . implode(', ', $valueStrings)
            . ' WHERE ' . implode(' AND ', $conditionStrings)
        ;
        // execute query
    }
    

    ただし、実際にはそのためにORMを使用する必要があります:

    Doctrine 2:クエリビルダーでクエリを更新>



    1. MySQLで空のフィールドをチェックする

    2. ヘアサロンデータベースプロジェクト

    3. SQLAlchemyでオブジェクトが存在しない場合にオブジェクトを挿入する最速の方法

    4. MariaDB LTRIM()とLTRIM_ORACLE():違いは何ですか?