| ユーザフォーラムで議論/質問 | マニュアル検索 | ハイライト | ハイライトオフ | ポータル | php spot |
導入 - autoPrepare & autoExecute導入 - autoPrepare & autoExecute – SQL 文を自動で組み立て、実行する
Description目的autoPrepare() および autoExecute() を使用することで、あのうんざりするような INSERT 文や UPDATE 文を書く必要がなくなります。例えばテーブルにフィールドを 追加したような場合に、いちいち書き直す必要もなくなります。 3 つのフィールド (id、name そして country) を持つ 'user' というテーブルがあるとしましょう。 この場合、以下のような SQL クエリを書くことになるでしょう。 INSERT INTO table (id, name, country) VALUES (?, ?, ?) UPDATE table SET id=?, name=?, country=? WHERE ... もしフィールド (たとえば 'birthYesr') を追加したとすると、 このクエリを書き直す必要があります。これはあまりにつまらない作業であり、 バグを生み出しやすいものです (もしひとつだけクエリを書き換えるのを 忘れたりしたら?)。 autoPrepareautoPrepare() を使用すると、insert クエリや update クエリを書く必要がなくなります。例えば、
<?php
この例では、 autoPrepare() は次の SQL クエリを組み立てます。 INSERT INTO user (id, name, country) VALUES (?, ?, ?) その後、 prepare() をコールします。 レコードを追加するには、以下のようにして execute() あるいは executeMultiple() を使用する必要があります。
<?php
そう、もはや SQL の INSERT クエリを 一切書かなくてもよくなるのです! UPDATE クエリについても同様です。 柔軟性を高めるため、クエリの WHERE 句についてだけは自分で書く必要があります。たとえばこのようになります。
<?php
autoPrepare() は、 次のようなクエリを組み立てます。 UPDATE user SET name=?, country=? WHERE id=1 その後、 prepare() をコールします。 何も WHERE 句を指定しなかった場合は、 テーブルのすべてのレコードが更新されてしまうことに注意しましょう。 autoExecuteinsert クエリや update クエリを実行する一番簡単な方法は、 autoExecute() を使用することです。 これは autoPrepare() および execute() を組み合わせたものです。 必要なのは、フィールド名をキーとしてフィールドの値を対応させた 連想配列のみでず。例えばこのようになります。
<?php
たったこれだけです! これで、次のようなクエリが組み立てられ、 そして実行されます。 INSERT INTO user (id, name, country) VALUES (1, 'Fabien', 'France')
UPDATE クエリの場合も同様です。
<?php
これは、次のようなクエリを組み立てて実行します。 UPDATE user SET name='Fabien', country='France' WHERE id = 1
何も WHERE 句を指定しなかった場合は、 テーブルのすべてのレコードが更新されてしまうことに注意しましょう。
|
各種マニュアル:
PHPマニュアル |
PEARマニュアル |
Smarty(英語)マニュアル |
PHP-GTKマニュアル |
「導入 - autoPrepare & autoExecute」をGoogle検索
|