INTEGER |
INT を使うよう SQL を変更する |
4Dv12.0 で整数をサポートする型は INT です。 |
CHAR |
かわりに VARCHAR を使う |
4Dv12.0 ではサポートしていません。 |
UNION |
未サポート。クエリを分割する |
4Dv12.0 ではサポートしていません。 |
SELECT 1 + 1; |
SELECT 1 + 1 FROM _USER_SCHEMAS; |
FROM は必須です。 |
FLOAT |
FLOAT 値を SQL 4D 関数 (CAST, ROUND, TRUNC あるいは TRUNCATE) で FLOAT あるいは STRING にキャストする |
現在のバージョンの PDO_4D ドライバではサポートしていません。 |
強い型付け |
SQL クエリの作成時に気をつけ、PHP のコードがきちんと期待通りの型のデータを渡すようにする |
正しい型を 4D に渡さなければなりません。'1' (文字列) を INTEGER のカラムに挿入することはできません。
|
PDO::execute($row)() は、テーブルのすべてのカラムが TEXT 型あるいは VARCHAR 型のときのみ動作する |
プリペアドステートメントを使い、正しい型を渡す |
PDO 拡張モジュールは、execute() の実行時にすべての値を文字列へキャストします。そして SQL データベース側で値をパースさせようとします。 |
SELECT NULL FROM TABLE |
定数 NULL を使わず、テーブルから取り出す |
select のリストに定数 NULL を使うことはできません。 |
SELECT * FROM TABLE WHERE 1 |
WHERE 1 = 1 を使う |
WHERE 句で定数を使うことはできません。 |
SHOW TABLES |
システムテーブルを使う |
テーブルやスキーマ、インデックスなどの一覧は、
_USER_TABLES, _USER_COLUMNS,
_USER_INDEXES, _USER_CONSTRAINTS,
_USER_IND_COLUMNS, _USER_CONS_COLUMNS
および _USER_SCHEMAS
といったシステムテーブルから取得します。
|
SQL 構文の区切り文字 |
次の関数を使って SQL の要素を保護する
function sqlEscapeElement(elem) {
return '[' . str_replace(']',']]', $elem) . ']';
}
|
SQL の要素名 (テーブル、フィールド、ユーザー、グループ、
スキーマ、主キーなど) をエスケープするには、
識別子全体を角括弧で囲み、さらに閉じ角括弧
']' は二重にしておかなければなりません。
|