حتما شما هم می دانید که پایگاه های داده ی مختلفی در سطح وب وجود دارد. اگر بحث در مورد پایگاه داده ی MySQL باشد شما می توانید با استفاده از PHPMyAdmin به ساخت پایگاه داده در PHP و جدول های آن بپردازید اما برخی از اوقات ممکن است به محیط PHPMyAdmin دسترسی نداشته باشیم و بخواهیم پایگاه داده یا جدول هایش را با زبان SQL بسازیم. در این مقاله میخواهیم این موضوع را مورد بحث قرار دهیم.
ساخت پایگاه داده با زبان SQL بسیار ساده است؛ کافی است از دستور CREATE DATABASE استفاده کنید:
<?php $servername = "localhost"; $username = "username"; $password = "password"; // Create connection $conn = new mysqli($servername, $username, $password); // Check connection if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } // Create database $sql = "CREATE DATABASE myDB"; if ($conn->query($sql) === TRUE) { echo "Database created successfully"; } else { echo "Error creating database: " . $conn->error; } $conn->close(); ?>
در مثال بالا پایگاه داده ای به نام myDB ساخته ایم و به آن متصل نیز شده ایم! اما همیشه هنگام ساخت پایگاه داده به نکات زیر توجه کنید:
new mysqli("localhost", "username", "password", "", port)
ساخت پایگاه داده با متد رویه ای MySQLi نیز به این شکل است:
<?php $servername = "localhost"; $username = "username"; $password = "password"; // Create connection $conn = mysqli_connect($servername, $username, $password); // Check connection if (!$conn) { die("Connection failed: " . mysqli_connect_error()); } // Create database $sql = "CREATE DATABASE myDB"; if (mysqli_query($conn, $sql)) { echo "Database created successfully"; } else { echo "Error creating database: " . mysqli_error($conn); } mysqli_close($conn); ?>
همچنین اگر بخواهیم از PDO استفاده کنیم می گوییم:
<?php $servername = "localhost"; $username = "username"; $password = "password"; try { $conn = new PDO("mysql:host=$servername", $username, $password); // set the PDO error mode to exception $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $sql = "CREATE DATABASE myDBPDO"; // use exec() because no results are returned $conn->exec($sql); echo "Database created successfully<br>"; } catch(PDOException $e) { echo $sql . "<br>" . $e->getMessage(); } $conn = null; ?>
تا اینجا یک پایگاه داده ساخته ایم اما هنوز جدولی در این پایگاه داده وجود ندارد. برای ساخت جدول ها (table) در پایگاه داده می توانیم از دستور 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 )
در کد بالا جدولی به نام MyGuests (مهمان های من) ساخته ایم که 5 ستون دارد: id و firstname و lastname و email و reg_date. بعد از نام هر ستون عبارتی شبیه به (INT(6 یا (VARCHAR(30 میبینید که Data type یا نوع داده های مجاز برای آن ستون می باشد. این نوع داده ها مشخص می کنند که هر ستون اجازه دارد چه نوع داده هایی را بگیرد؛ به طور مثال INT یعنی عدد صحیح (این ستون فقط می تواند عدد صحیح بگیرد) یا VARCHAR یعنی کاراکترها به صورت کلی (شامل اعداد و حروف) و الی آخر. برای توضیحات بیشتر و کامل تر به دوره ی آموزشی SQL در روکسو مراجعه کنید.
پس از مشخص کردن نوع داده، گزینه های دیگری نیز وجود دارد که می تواند برای هر ستون مشخص شود:
هر جدول ما باید یک primary key داشته باشد که معمولا ستون id است. در مثال های زیر ساخت جدول را با سه روش شیء گرای MySQLi و شیء گرای PDO و حالت رویه ای MySQLi انجام داده ایم:
روش اول: MySQLi شیء گرا
<?php $servername = "localhost"; $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(); ?>
روش دوم: MySQLi رویه ای
<?php $servername = "localhost"; $username = "username"; $password = "password"; $dbname = "myDB"; // Create connection $conn = mysqli_connect($servername, $username, $password, $dbname); // Check connection if (!$conn) { die("Connection failed: " . mysqli_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 (mysqli_query($conn, $sql)) { echo "Table MyGuests created successfully"; } else { echo "Error creating table: " . mysqli_error($conn); } mysqli_close($conn); ?>
روش سوم: PDO
<?php $servername = "localhost"; $username = "username"; $password = "password"; $dbname = "myDBPDO"; try { $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password); // set the PDO error mode to exception $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // 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 )"; // use exec() because no results are returned $conn->exec($sql); echo "Table MyGuests created successfully"; } catch(PDOException $e) { echo $sql . "<br>" . $e->getMessage(); } $conn = null; ?>
امیدوارم از درس ساخت پایگاه داده در php استفاده ی کافی را برده باشید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.