我有一个PHP脚本,它只需要从SQLite数据库中的表中获取所有行。
表的名称总是类似于174597131028398082-199534472775860224
。
此名称由两个变量(sid
和cid
)组成,这两个变量是通过GET请求的参数定义的。问题是,我没有返回所有行(我稍后会在脚本中显示),而是收到此错误:SQLSTATE[HY000]: General error: 1 no such table: :sid-:cid
。
似乎PHP没有用正确的值替换:sid
和:cid
。我见过关于类似问题的another thread,但我仍然无法使其发挥作用。
这是我的代码:
$query = "SELECT * FROM `:sid-:cid`;";
$queryparams = array(
':sid' => $_GET['sid'],
':cid' => $_GET['cid']
);
try {
$stmt = $db->prepare($query);
$result = $stmt->execute($queryparams);
} catch(PDOException $ex) {
die($ex->getMessage());
}
此外,这是我连接数据库的方式:
try {
$db = new PDO("sqlite:scores.db");
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$db->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
} catch(PDOException $ex) {
die($ex->getMessage());
}