PDO:データの入出力
prepare
public PDO::prepare(string $query, array $options = []): PDOStatement|false
引数 $query に SQL文を設定します。
引数 $options については、編者は使ったことがありません。
実行に成功すると PDOStatement (PDOオブジェクト) を返すので、
このオブジェクトを使って以降の関数を実行します。
execute
public PDOStatement::execute(?array $params = null): bool
SQL を実行します。
成功した場合に true を、失敗した場合に false を返します。
# データを読み出す場合は、後述の別関数が必要です。
# 読みだしたデータが返ってくるわけではありません。
$params は、
・'?'プレースホルダ利用時は、実際に設定する値を配列で指定します。
・名前付きプレースホルダ利用時は、何も指定するものはありません。
fetch
public PDOStatement::fetch(int $mode = PDO::FETCH_DEFAULT, int $cursorOrientation = PDO::FETCH_ORI_NEXT, int $cursorOffset = 0): mixed
| $mode | 出力するモード。省略すると、PDO オブジェクト生成時のデフォルトに。 |
| $cursorOrientation | 「スクロール可能カーソル」関連。説明省略 |
| $cursorOffset | 「スクロール可能カーソル」関連。説明省略 |
データを1行分取得します。
データが複数行ある場合は、その数だけ繰り返し実行します。
取得に失敗するか、取得できる行がない場合は false を返します。
fetchColumn
public PDOStatement::fetchColumn(int $column = 0): mixed
1つのカラムのデータを取得します。
取得に失敗すると、false を返します。
$column は、取得したい 0 で始まるカラム番号を指定します。
省略すると 0番目のカラムが対象になります。
サンプル・プログラムでは、
addRecord で、$sth->fetchColumn() として使っています。
引数を省略しているので、0番目。
doc_data テーブルの0番目カラムは doc_id なので、
結果として doc_id の値が取得できています。
ちなみに、
boolean型のカラムには使わないでください。
取得失敗の false と、実際の値の false との区別が付かないからです。
prepare 引数 $options について。
PDO::ATTR_ERRMODE などを渡すこともできるようですが、非推奨です。
「スクロール可能カーソル」を有効にできるデータベースありますが、
PostgreSQL は非対応です。
fetch は通常、次の行への1方向しかデータを取り出せませんが、
「スクロール可能カーソル」が使えるデータベースでは、
前の行に戻ったりすることが可能なようです。