Я использую PHP и mysqli и пытаюсь создать БД, если ее нет в моем файле dbLogin. Похоже, это должно быть довольно просто. Кажется, он зависает при первой попытке создания с ошибкой и не может пройти мимо или поймать ошибку.
Вот мой очень простой код:
<?php
$con = '';
try {
$con = new mysqli("host", "user", "pass", "db");
}
catch(Exception $e) {
echo "Error: $e<br />";
$con = new mysqli("host", "user", "pass");
$con->query("CREATE DATABASE IF NOT EXISTS db;");
}
/* check connection */
if ($con->connect_errno) {
printf("Connect failed: %s\n", $con->connect_error);
exit();
}
?>
Теперь, когда я запускаю приведенный выше код, все, что я получаю, это следующая ошибка:
Предупреждение: mysqli :: __ construct (): (HY000 / 1049): неизвестная база данных
'db' в xyz \ DBLogin.php в строке 6 Connect
ошибка: неизвестная база данных 'db'
Строка 6 - это строка внутри блока try
. Он не создает базу данных и не перемещается после ошибки.