‎‎ايجاد جدول باphpدر بانکهاي اطلاعاتي

Previous >    <Next  

‎هر ديتا بيسي(DataBase) ‎شامل جداول مختلف اطلاعاتي است. هرجدول در يك ديتا بيس داراي نام يگانه ايست.جدول داراي ‎تعدادي ستون وتعدادي سطرميباشد. هرستون جدول داراي نام يگانه ايست و به آن فيلد ‎(field)‎‎ميگويند.

‎هرفيلد داراي مشخصات خاص بوده که رفتارسيستمهاي اطلاعاتي رابراي نگهداري وکنترل برآن مشخص ‎مينمايد. مجموعه فيلدهاي جدول ساختار‎"structure‎"‎جدول نام دارد.در رديفهاي هرجدول، اطلاعات ‎قرارميگيرد. فيلدهاي جدول موارد رابطه دارهستندوقرار گرفتن فيلد بدون رابطه درجدول کاربردي ‎نداشته وبي معني است. براي تعريف ساختارجدول دربانکهاي اطلاعاتي استاندارد از دستور ‎ايجادجدول‎‎"create table‎"‎ استفاده ميشود. نمونه آن مطابق زيراست.

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
) 

‎در دستور ايجاد جدول براي هر فيلد بايستي نوع فيلد اعلام شود .انواع فيلد براي بانك اطلاعاتي MySQL‎در Data Type reference ‎وجود دارد .بعد از نوع فيلد ويژگي يا گزينه هاي ديگريست كه بدنبال نوع فيلد ميتواند اضافه شود

‎درخواست‎"query‎"‎فوق ، دستور ‎ايجادجدولmyGuesteدرديتابيسMydb است که درادامه ازآن استفاده ميشود. همچنين مشخصه ‎فيلدهابطور کلي درجدول، در زيربيان شده است.

‎اين جدول داراي پنح فيادid،emai ،lastnsme،firstnameوreg_date ميباشدid .كليد ‎اصلي‎"primerykey‎"‎بوده ويک فيلد افزايشي است. همچنين داراي مقاديرمثبت ميباشد. ‎درافزايش رديف اطلاعات مقدارآن بصورت اتوماتيک افزايش مي يابد.

‎فيلدreg_dateتاريخ ثبت رديف بوده ومقدارپيش فرض آن تاريخ لحظه ثبت ميباشد.يعني اگر ‎مقداري اعلام نشود بصورت اتوماتيک پيش فرض رادرنظرميگيرد.

‎ايحاد جدول‎"create table‎"‎با زبانphp بسه روش توضيح داده شده دربخش ايجادdatabase ميتوان ‎انجام داد.اين سه روش مطابق زير ميباشند.

‎Mysqli(object oriented)-1

‎Mysqli(procedural)-2

‎PDO(php data objects)-3

‎روش 1و2خاصmysqlبوده و روش سوم براي بيشتر سيستم بانک هاي اطلاعاتي است. ‎روش 2رويه اي تا تابعي است ولي دوروش ديگر شيگرا ميباشند.

‎براي ايچاد جدول در مثال از روش اول يعنيmysqliشيگرا استفاده مي نمائيم . بکارگيري ‎دو روش ديگر مشابه آنچه که درايجادdatabaseبيان شدميباشد فقط درخواست ‎"query‎"‎،تفاوت دارد ‎كه ايجاد جدولcreate table است.

‎براي ايجاد جدول بايد ابتدا با بانک اطلاعاتي ارتباط برقرارنموده وسپس درخواست ايجاد را مطابق ‎الگوي انتخابي اجرا نمود. عمليات مشابه ايجادdatabaseاست. ممکن است دستوراسکيوال آن در ‎سيستمهاي اطلاعاتي تفاوت اندکي داشته باشد، که بايد رعايت شود. بعنوان نمونه فيلد افزايشي در ‎ماي اسکيوال‎ auto-‎increment‎ ‎ودراسکيوال سرورidentity درمقابل فيلد ذکر ميشود.

‎‎مثال ـ ايجادجدول با روشmysqli شيگرا

‎براي ارتباط با بانک اطلاعاتي براي ايجاد جدول از چهار پارامتر استفاده ميشود. پارامتر چها رم ‎نماينده نامdatabaseاست که بايد درآن جدول مربوطه ايجاد شود. سه پارامتراول قبلا درايجاد database‎مطرح شده بود. دراين مثال جدول MyGuestsدرديتابيسmydb ايجادميشود. دستورايجاد ‎ارتباط بصورت زيراست. روال بررسي ارتباط وپيغام نتايج عمليات مشابه موارد قبلي است.

$conn = new mysqli($servername, $username, $password, $dbname);

‎درخواست ايجاد جدول درمتغير‎$sql‎ قرارگرفته وتوسط متدqueryشئ‎$conn‎ ‎اجرا ميگردد.

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

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
 // Check connection
 if  ($conn->connect_error) {
   die("Connection failed: " . $conn->connect_error);
} 

// sql to create table
 $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 "Table MyGuests created successfully";
} else {
   echo "Error creating table: " . $conn->error;
}

$conn->close();
 ?> 

‎درصورتيکه دستورcreate tableمطابق قانون استاندارد اسکيوال نباشد، پيغام خطا صادر ‎ميشود. اگرجدول مورد نظرقبلا ايجاد شده باشد، مجددا ايجاد نميشودو پيغام خطا صادر ميگردد.


Previous >    <Next