先日DBIを使っていて、謎な挙動に遭遇したので書いてみる。LIMIT, OFFSET句でプレースホルダーを用いた時に起こった。DBI + DBD::mysqlを使っていた。 DBI: 1.616 DBD::mysql: 4.022 LIMITとOFFSETを両方にプレースホルダーを使う LIMITとOFFSETを両方を?にするのはうまくいく。 $res = $dbh->prepare_cached(q[ SELECT * FROM user WHERE name = ? LIMIT ? OFFSET ? ])->execute('shiba_yu36', 1, 1); LIMITのみプレースホルダー LIMITのみ?でもうまくいく。 $res = $dbh->prepare_cached(q[ SELECT * FROM user WHERE name = ? LIMIT ? OFFSET