0
$tbl = 'brand';
$sth = self::$db->prepare('PRAGMA table_info(SELECT tbl_name FROM sqlite_master WHERE tbl_name = ? LIMIT 1)');
$sth->execute(array($tbl));
$obj = $sth->fetch(PDO::FETCH_OBJ);
$sth->closeCursor();
return $obj;

このスクリプトは を返しますFatal error: Call to a member function execute() on a non-objectbrandテーブルがデータベース内に存在している間に、ステートメントの Syntax Error によってエラーが発生したと思います。

私の質問は、SQLite3 でそのようなステートメントを実行する別の方法はありますか? ユーザーの入力から特定のテーブル名のテーブル情報を取得したい。

4

1 に答える 1

0

文字列連結を使用して、次の SQL を作成して実行するだけです。

PRAGMA table_info(ブランド)

サブクエリを使用してテーブル名を取得しないでください。

于 2012-05-14T04:56:27.273 に答える