سلام
استاد من میخوام در ابتدای پروژه از طریق کوئری جداولم رو ایجاد کنم و نیازی نباشه که قبل از اجرای اسکریپت بخوایم بصورت دستی اینکار رو انجام بدیم، در ابتدای کار میخواستم از طریق چندین درخواست prepare اینکار رو انجام بدم اما با بررسی متدهای کلاس mysqli رسیدم به متد multi_query
سوال اینجاست که من پروژه هایی رو بررسی کردم اما از این متد برای ایجاد چندین پایگاه داده بصورت همزمان استفاده نکردن و با چندین درخواست یا query بوده یا prepare ، ممکنه راهنمایی کنید که کدوم متد میتونه بهتر باشه؟
کد کانفیگ پروژه:
$db_config = [
'host' => 'localhost',
'user' => 'root',
'name' => 'map',
'pass' => ''
];
$mysqli = new mysqli($db_config['host'], $db_config['user'], $db_config['pass'], $db_config['name']);
# check database connection has error
if ($mysqli->connect_error) {
echo "DB CONNECTION ERROR: " . $mysqli->connect_error;
exit();
}
# select project database
$mysqli->select_db($db_config['name']);
// create database tables
# users table
$sql = "CREATE TABLE IF NOT EXISTS users (
`id` bigint unsigned not null auto_increment primary key,
`username` varchar(255) not null,
`email` varchar(255) not null,
`name` varchar(255) null,
`family` varchar(255) null,
`nikname` varchar(255) null,
`password` varchar(255) not null,
`is_verified` bit null default 0,
`created_at` datetime not null default CURRENT_TIMESTAMP
) ENGINE=innoDB;";
# locations table
$sql .= " CREATE TABLE IF NOT EXISTS locations (
`id` bigint unsigned not null auto_increment primary key,
`user_id` int unsigned not null,
`title` varchar(550) not null,
`latitude` float not null,
`longitude` float not null,
`type` tinyint unsigned not null,
`status` tinyint unsigned not null,
`created_at` datetime not null default CURRENT_TIMESTAMP,
`modified_at` datetime not null default CURRENT_TIMESTAMP
) ENGINE=innoDB;";
$mysqli->multi_query($sql);
ممنون