يك ديتابيس شامل يك يا چند جدول ميباشد .براي ايجاد يا حذف آن از بانك اطلاعاتيMySql نيازمند اخيتار ويژه اي است.
براي ايجاد بانک اطاعاتي باphpبسه روش مطرح شده کد دربخش ارتباط باسروراطلاعاتي مطرخ شد، مي پردازيم. اين سه روش مطابق زير ميباشند.
Mysqli(object oriented)-1
Mysqli(procedural)-2
PDO(php data objects)-3
براي انجام هرعملي روي بانک اطلاعاتي ابتدا بايد به سرورمربوطه ارتباط برقرارکرد. سپس با
استفاده ازمتغيرياشي ارتباطي اقدام نمود. هراقدامي دراين مرحله بايد مطابق درخواست استاندارد
اسکيوال
فرمت ساده ايجاد بانک اطلاعاتي بصورت زيراست.
create database {databasename}
مورد فوق يک درخواست اسکيوالsql_query()است، وبايد دربرنامهphp مطابق فرمت قانوني گنجانده و اجرا شود.
بعنوان مثالcreate database mydb درصورت اجرا بانک اطلاعاتي mydb را ايجاد ميکند.
مثال ـ ايجاد بانک اطلاعاتي بروشmsysqliشيگرا
<?php $servername = "servername"; $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(); ?>
دراين مثال درخواست ايجادdatabaseدرمتغير sqlقرارگرفته وباتوجه به شي connبصورت زيراجرا ميشود. نتيجه اجرا دردستورif كنترل وپيغام مناسب داده ميشود. تابع query() يک متدازشي رابطه است. پارامترتابع درخواست اسکيوال ايجاد بانک اطلاعاتي است.
مثالmysqli ـ ايجاد بانک اطلاعاتي بروش رويه اي
<?php $servername = "servername"; // exanple 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); ?> <?php $servername = "localhost"; $username = "admin"; $password = "12345"; // 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); ?>
دراين روش ازتابعmysqli_query()براي اجراي درخواست استفاده مي شود. شامل دوپارامتر ارتباط($conn) ودرخواست اسكيوال($sql) است. .نتيجه برگشتي تابعtrue ياfalse ميباشدکه باکنترل آن، پيغام مناسب داده ميشود. براي خطا ازتابعmysqli_error()استفاده ميسود.پارامترتابع متغيرارتباطconnمياشد. باتابعmysqli_closeارتباط بسته خواهدشد.
مثال ـ ايجاد بانک اطلاعاتي بروشpdo
<?php $servername = "servername"; $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; ?>
دراين برنامه که بروشpdoبانک اطلاعاتيmydb ايجادميشود، تابعexec()اجراي درخواست را مطابق دستورزير انجام ميدهد.
$conn->exec($sql);
تابع فوق متدي ازشي ارتباط ميباشد که دردستورزير ايجادشده است.
در برنامه بلوکtry[] ارتباط وايجادبانک اطلاعاتي را انجام ميدهد وبلوکcatch پيغام خطاراصادرمينمايد. دستورزير درانتها شي ازتباطي را حذف يا متوقف ميکند.
$conn = null;