Ola. Estou criando um sistema de carrinho em php e pra isso preciso de um banco de dados. Pra não ficar chamando todas as funções a cada vez que a pagina atualiza, decidi usar a função mysqli_select_db, que verifica se o db existe e caso não exista, entre nas funções e crie. Porém, ao chamar a função quando o db não existe o php lança um "erro não capturado" e trava o layout. Se eu chamo o código sem o mysqli_select_db o código roda, porem chamando as funções a cada atualização. Poderia ser algum erro na api, ou tem uma nova forma pra pegar o tipo mysqli no php8?
Esse é o código que eu chamo pra salvar os dados:
```php
public function save($host,$user,$pass,$db){
$connection = mysqli_connect($host, $user, $pass);
if($connection){
if(mysqli_select_db($connect,$db)){
}
$dbCreator = "CREATE DATABASE IF NOT EXISTS ".$db;
if(mysqli_query($connection, $dbCreator)){
//echo "Database created successfully"."</br>";
} else{
echo "ERROR: Could not able to execute $sql. " . mysqli_error($connection);
return 0;
}
$tableCreator = "CREATE TABLE IF NOT EXISTS `".$db."_tb` (".
"`name` VARCHAR(64) NOT NULL,".
"`price` REAL,".
"`amount` SMALLINT,".
"`barcode` BIGINT NOT NULL PRIMARY KEY,".
"`lot` VARCHAR(64) NOT NULL,".
"`manufactured` VARCHAR(10) NOT NULL,".
"`maturity` VARCHAR(10) NOT NULL".
");";
$insert = "INSERT INTO ".$db."_tb (`name`, `price`, `amount`, `barcode`, `lot`, `manufactured`, `maturity`) ".
"SELECT ".
"\"$this->name\",".
"\"$this->price\",".
"\"$this->amount\",".
"\"$this->barcode\",".
"\"$this->lot\",".
"\"$this->manufactured\",".
"\"$this->maturity\"".
" FROM dual WHERE NOT EXISTS(SELECT * FROM $db"."_tb WHERE barcode = '$this->barcode')LIMIT 1;";
if(mysqli_select_db($connection,$db)){
if(mysqli_query($connection,$tableCreator));//echo "Tabela ".$db."_tb criada com sucesso.<br/>";
if(mysqli_query($connection,$insert));//echo "Dados inseridos com sucesso em $db"."_tb<br/>";
}
mysqli_close($connection);
return 1;
}
return 0;
}
```