私の PHP ユニット テストでは、次のテーブルを含む SQLite インメモリ データベースを使用しています。
CREATE TABLE "battlegroup_request" (
"id" INTEGER NULL PRIMARY KEY AUTOINCREMENT,
"battlegroupID" INTEGER NULL,
"inviterID" INTEGER NULL,
"inviteeID" INTEGER NULL
)
2 つの整数バインディングを使用して次のクエリを実行すると、
SELECT *
FROM "battlegroup_request"
WHERE "inviteeid" = ? AND
"inviter" IS NOT NULL AND
"battlegroupid" = ?
LIMIT 1
inviter
クエリは 1 つの結果を返しますが、列が存在しないため、エラーがスローされると予想されます。これは SQLite の予想される動作ですか? 私は何か間違ったことをしていますか?
私は PDO を使用しています。接続は次のように作成されました。
new PDO(
'sqlite::memory:',
null,
null,
array(
PDO::ATTR_CASE => PDO::CASE_LOWER,
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_ORACLE_NULLS => PDO::NULL_NATURAL,
PDO::ATTR_STRINGIFY_FETCHES => false,
PDO::ATTR_EMULATE_PREPARES => false,
)
);
(これらのオプションは、使用しているフレームワークであるLaravelのデフォルトです。)