Несколько таблиц MySQL одним запросом SQL

349
01 декабря 2018, 04:40

Друзья подскажите как можно одним запросом SQL создать несколько таблиц. Без использование PHP ООП.У меня есть такой пример кода. Подскажите как можно решить проблему.Заранее спасибо

Вот код

<?php  
if (isset($_POST['connect'])){
     $dbhost=htmlentities($_POST['dbhost']);
     $dbuser=htmlentities($_POST['dbuser']);
     $dbpass=htmlentities($_POST['dbpass']);
     $dbname=htmlentities($_POST['dbname']);
$connection=mysqli_connect($dbhost,$dbuser,$dbpass,$dbname);
if(!$connection){
     die("No Connection" .mysqli_connect_error());
 }
      else{
         echo "connection Sucesfully";
     }
$sql="
 CREATE TABLE languages (
id INT(11) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
rus TEXT(200) NOT NULL,
eng TEXT(200) NOT NULL,
pl  TEXT(200) NOT NULL
),
 CREATE TABLE gallery (
id INT(11) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
big_img     VARCHAR(255) NOT NULL,
middle_img  VARCHAR(255) NOT NULL,
small_img   VARCHAR(255) NOT NULL
)";
    if (mysqli_query($connection, $sql)) {
    echo "All Tables Created Successfully";
} else {
    echo "Error creating table: " . mysqli_error($connection);
}
mysqli_close($connection);
}

?>
    <!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Test</title>
</head>
</body>
<form  action="<?php $_SERVER['PHP_SELF'];?>"  method="post">
<input type="text" name="dbhost"  placeholder="Enter Host Name">
</br>
<input  type="text"  name="dbuser" placeholder="Enter Database User Name">
</br>
<input type="password"  name="dbpass"  placeholder="Enter Database Password">
</br>
<input  type="text" name="dbname"  placeholder="Enter Database Name">
</br>
<button type="submit" name="connect"  value="send">Connect Database</button>

</form>
</body>
</html>
Answer 1

Для начала запросы нужно разделить символом ;, а потом использовать функцию mysqli_multi_query()

$sql="
 CREATE TABLE languages (
id INT(11) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
rus TEXT(200) NOT NULL,
eng TEXT(200) NOT NULL,
pl  TEXT(200) NOT NULL
);
 CREATE TABLE gallery (
id INT(11) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
big_img     VARCHAR(255) NOT NULL,
middle_img  VARCHAR(255) NOT NULL,
small_img   VARCHAR(255) NOT NULL
);";
    if (mysqli_multi_query($connection, $sql)) {
    echo "All Tables Created Successfully";
} else {
    echo "Error creating table: " . mysqli_error($connection);
}

Ну и да, обычно таблицы создаются не из PHP, а путем импорта дампа базы

READ ALSO
Данные формы не отправляются в БД

Данные формы не отправляются в БД

Данные из формы не отправляются в MySQL датабазуВот код:

187
Вставить ролик с ютуба в mp3 плеер

Вставить ролик с ютуба в mp3 плеер

На входе ролик - https://wwwyoutube

177
Не работает функция отправки отзыва

Не работает функция отправки отзыва

Данные в базу не отправляются,поля не подсвечиваютсяС бд все нормально,если добавить отзыв напрямую через нее,то все выводится

231
не добавляется двоеточие в sql server

не добавляется двоеточие в sql server

хочу добавить ip адреса в sql server через php запросом, не получается (наверное из за двоеточие) в таблице Users столбец user_ip тип данных nvarchar(300)

158