💻 آخرین فرصت یادگیری برنامه‌نویسی با آفر ویژه قبل از افزایش قیمت در ۵ آذر ماه (🎁 به همراه یک هدیه ارزشمند )
۰ ثانیه
۰ دقیقه
۰ ساعت
۱ علیرضا دهکار
ایجاد جداول با multi query
لقمان آوند حل شده توسط لقمان آوند

سلام

استاد من میخوام در ابتدای پروژه از طریق کوئری جداولم رو ایجاد کنم و نیازی نباشه که قبل از اجرای اسکریپت بخوایم بصورت دستی اینکار رو انجام بدیم، در ابتدای کار میخواستم از طریق چندین درخواست 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);

ممنون

سلام علیرضا

سعی کن جدا جدا اجرا کنی.

وقتی جدا اجرا کنی اگر خطایی پیش بیاد راحتتر می‌تونی دیباگ کنید و بگی مثلا در اضافه کردن فلان جدول مشکلی پیش اومده.

من هم اکثرا دیدم که جداگانه کوئری می‌زنند

بهترین پاسخ
لقمان آوند ۰۲ خرداد ۱۳۹۹، ۰۳:۱۵