В настоящее время я использую следующее, которое работает, но выдает ошибку каждый раз, когда создается таблица (поскольку она сначала пытается вставить в БД, которая не существует, и возвращает false).
$result = $dbh->prepare("INSERT INTO `". $host ."` (URL) VALUES ('$href')");
if( ! $result->execute() ){
$result = $dbh->prepare("CREATE TABLE `" . $host . "` ( `ID` INT( 255 ) NOT NULL AUTO_INCREMENT , `URL` VARCHAR( 255 ) NOT NULL , PRIMARY KEY ( `ID` )) ENGINE = MYISAM ;");
$result->execute();
print "Host added: " . $host . "\n";
}
Может ли кто-нибудь сообщить мне о более эффективном способе выполнения этой задачи?
РЕДАКТИРОВАТЬ - Bind
$result = $dbh->prepare("CREATE TABLE `?` If NOT EXISTS ( `ID` INT( 255 ) NOT NULL AUTO_INCREMENT , `URL` VARCHAR( 255 ) NOT NULL , PRIMARY KEY ( `ID` )) ENGINE = MYISAM ;");
$result->execute($host);
$result = $dbh->prepare("INSERT INTO `?` (URL) VALUES ('?')");
$result->execute($host, $href);
print "Host added: " . $host . "\n";
это правильно?