我的問題是我無法讓佔位符在我的SQL語句中工作。具體來說,在下面的代碼中,當我用'abcdefg'
這樣的值替換佔位符':tripsid'
時,TABLE不會按照預期創建。PHP PDO :: prepare() - SQL佔位符錯誤
SQL錯誤是:
PDO :: errorInfo中():陣列([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();
}
我已經嘗試過所有我能想到的。有沒有人看到錯誤?
請務必將其標記爲已接受,如果這確實可以解決您的問題。 –