【发布时间】:2011-11-23 14:13:56
【问题描述】:
我的问题是我无法在我的 SQL 语句中使用占位符。具体来说,在下面的代码中,当我将占位符 ':tripsid' 替换为 'abcdefg' 之类的值时,TABLE 并未按预期创建。
SQL 错误是:
PDO::errorInfo(): Array ([0] => 42000 [1] => 1064 [2] => 你有一个 SQL 语法错误;检查与您对应的手册 MySQL 服务器版本,用于在 *''sdfghjk' ( id INT NOT NULL,stop_start SMALLINT NOT NULL,stop_end SMA'* 在第 1 行)
还有代码:
// My method to create a table with PDO and placeholders
public function routes_table() {
$this->connect();
$STH = $this->DBH->prepare('CREATE TABLE IF NOT EXISTS :tripsid (
id INT NOT NULL,
stop_start SMALLINT NOT NULL,
stop_end SMALLINT NOT NULL,
distance SMALLINT NOT NULL,
duration TINYINT NOT NULL,
medium TINYTEXT NOT NULL,
CONSTRAINT pk_routes PRIMARY KEY ( id )
)');
$tripsid = "sdfghjk";
$STH->bindParam(':tripsid', $tripsid, PDO::PARAM_STR, 7);
$STH->execute();
// SQL Errors
if (!$STH->execute($input)) {
echo "\nPDO::errorInfo():\n";
print_r($STH->errorInfo());
}
$this->disconnect();
}
我已经尝试了我能想到的一切。有没有人看到错误?
【问题讨论】:
标签: sql pdo placeholder