MySQL запутывается, потому что вы не разграничиваете свои запросы.Добавьте точку с запятой после первого оператора CREATE
:
private function buildDB() {
$sql = <<<MySQL_QUERY
CREATE TABLE IF NOT EXISTS headings (
type VARCHAR(150),
heading VARCHAR(100),
uniqueid VARCHAR(100)
);
CREATE TABLE IF NOT EXISTS titles (
type VARCHAR(150),
heading VARCHAR(100),
uniqueid VARCHAR(100)
)
MySQL_QUERY;
return mysql_query($sql);
}
Кроме того, убедитесь, что MySQL_QUERY
находится в начале строки без других символов, кроме, возможно, точки с запятой ,согласно документации Heredoc .
Поскольку приведенное выше не работает, попробуйте этот код:
private function buildDB() {
$sql1 = "CREATE TABLE IF NOT EXISTS headings (
type VARCHAR(150),
heading VARCHAR(100),
uniqueid VARCHAR(100))";
$sql2 = "CREATE TABLE IF NOT EXISTS titles (
type VARCHAR(150),
heading VARCHAR(100),
uniqueid VARCHAR(100))";
MySQL_QUERY;
return mysql_query($sql1) && mysql_query($sql2);
}
You может использовать mysqli_multi_query()
(версия MySQL не существует), но тогда вам придется использовать MySQLi.Приведенный выше код возвращает логическое И двух запросов, поэтому вы все равно получите 0
, возвращенный в случае сбоя.