PHP – ایجاد جدول در پایگاه داده MySQL

جدول‌های پایگاه داده یکی از اجزای کلیدی در ذخیره و مدیریت داده‌ها هستند. هر جدول نام منحصر به فردی دارد و شامل ستون‌ها و سطرها است. در این مقاله، نحوه ایجاد یک جدول در MySQL با استفاده از PHP و دو روش محبوب MySQLi و PDO را بررسی خواهیم کرد.

تعریف جدول در MySQL

برای ایجاد یک جدول جدید در MySQL، از دستور CREATE TABLE استفاده می‌شود. در اینجا، جدولی به نام “MyGuests” با پنج ستون: “id”، “firstname”، “lastname”، “email” و “reg_date” ایجاد خواهیم کرد:

CREATE TABLE MyGuests (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
firstname VARCHAR(30) NOT NULL,
lastname VARCHAR(30) NOT NULL,
email VARCHAR(50),
reg_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
)

توضیحات در مورد جدول بالا:

  • نوع داده: مشخص می‌کند که هر ستون چه نوع داده‌ای می‌تواند داشته باشد.
  • NOT NULL: هر ردیف باید مقداری برای آن ستون داشته باشد و مقادیر NULL مجاز نیستند.
  • DEFAULT value: مقدار پیش‌فرضی که زمانی که مقداری دیگر ارائه نشود، اضافه می‌شود.
  • UNSIGNED: برای انواع عددی استفاده می‌شود و داده‌های منفی را حذف می‌کند.
  • AUTO_INCREMENT: MySQL به طور خودکار مقدار فیلد را با هر بار اضافه کردن رکورد جدید افزایش می‌دهد.
  • PRIMARY KEY: برای شناسایی منحصر به فرد هر ردیف در جدول استفاده می‌شود. ستون با تنظیم PRIMARY KEY معمولاً یک شماره ID است و اغلب با AUTO_INCREMENT استفاده می‌شود.

هر جدول باید دارای یک ستون کلید اصلی باشد (در اینجا: ستون “id”). مقدار آن باید برای هر رکورد در جدول منحصر به فرد باشد.

ایجاد جدول با استفاده از MySQLi

1. استفاده از MySQLi به روش شیء‌گرا

در این روش، از MySQLi به صورت شیء‌گرا برای ایجاد جدول استفاده می‌کنیم:

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";

// ایجاد اتصال
$conn = new mysqli($servername, $username, $password, $dbname);

// بررسی اتصال
if ($conn->connect_error) {
  die("اتصال ناموفق: " . $conn->connect_error);
}

// دستور SQL برای ایجاد جدول
$sql = "CREATE TABLE MyGuests (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
firstname VARCHAR(30) NOT NULL,
lastname VARCHAR(30) NOT NULL,
email VARCHAR(50),
reg_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
)";

if ($conn->query($sql) === TRUE) {
  echo "جدول MyGuests با موفقیت ایجاد شد";
} else {
  echo "خطا در ایجاد جدول: " . $conn->error;
}

$conn->close();
?>

2. استفاده از MySQLi به روش رویه‌ای

در این روش، از MySQLi به صورت رویه‌ای برای ایجاد جدول استفاده می‌کنیم:

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";

// ایجاد اتصال
$conn = mysqli_connect($servername, $username, $password, $dbname);

// بررسی اتصال
if (!$conn) {
  die("اتصال ناموفق: " . mysqli_connect_error());
}

// دستور SQL برای ایجاد جدول
$sql = "CREATE TABLE MyGuests (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
firstname VARCHAR(30) NOT NULL,
lastname VARCHAR(30) NOT NULL,
email VARCHAR(50),
reg_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
)";

if (mysqli_query($conn, $sql)) {
  echo "جدول MyGuests با موفقیت ایجاد شد";
} else {
  echo "خطا در ایجاد جدول: " . mysqli_error($conn);
}

mysqli_close($conn);
?>

ایجاد جدول با استفاده از PDO

در این روش، از PDO برای ایجاد جدول استفاده می‌کنیم:

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDBPDO";

try {
  $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
  // تنظیم حالت خطا به استثنا
  $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

  // دستور SQL برای ایجاد جدول
  $sql = "CREATE TABLE MyGuests (
  id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  firstname VARCHAR(30) NOT NULL,
  lastname VARCHAR(30) NOT NULL,
  email VARCHAR(50),
  reg_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
  )";

  // استفاده از exec() چون نتیجه‌ای برنمی‌گردد
  $conn->exec($sql);
  echo "جدول MyGuests با موفقیت ایجاد شد";
} catch(PDOException $e) {
  echo $sql . "<br>" . $e->getMessage();
}

$conn = null;
?>

نکته: یکی از مزایای بزرگ PDO این است که دارای کلاس استثنا برای مدیریت مشکلاتی است که ممکن است در کوئری‌های پایگاه داده پیش بیاید. اگر استثنایی در بلوک try{ } پرتاب شود، اسکریپت متوقف شده و به طور مستقیم به اولین بلوک catch(){ } منتقل می‌شود. در بلوک catch بالا، ما دستور SQL و پیام خطای تولید شده را نمایش می‌دهیم.

با استفاده از این روش‌ها، می‌توانید به راحتی جداول MySQL را با PHP ایجاد کرده و مدیریت کنید.

پست های مرتبط

مطالعه این پست ها رو از دست ندین!
JavaScript - تاریخ‌ها (Dates)

JavaScript – تاریخ‌ها (Dates)

آبجکت‌های تاریخ (Date) در جاوااسکریپت آبجکت‌های تاریخ در جاوااسکریپت به ما امکان کار با تاریخ و زمان را می‌دهند....

بیشتر بخوانید
JavaScript - آرایه‌های ثابت (Array Const)

JavaScript – آرایه‌های ثابت (Array Const)

جاوااسکریپت: تعریف آرایه با const در سال 2015، جاوااسکریپت کلمه کلیدی مهمی به نام const را معرفی کرد. این...

بیشتر بخوانید
JavaScript - تکرار آرایه‌ها (Array Iteration)

JavaScript – تکرار آرایه‌ها (Array Iteration)

جاوا اسکریپت: تکرار بر روی آرایه‌ها جاوا اسکریپت روش‌های مختلفی برای تکرار (Iteration) بر روی آرایه‌ها ارائه می‌دهد که...

بیشتر بخوانید

نظرات

سوالات و نظراتتون رو با ما به اشتراک بذارید

برای ارسال نظر لطفا ابتدا وارد حساب کاربری خود شوید.