একটি ডাটাবেস টেবিল এর নিজস্ব নাম থাকে এবং এটা কলাম ও সারি নিয়ে গঠিত হয়।
MySQLi এবং PDO ব্যবহার করে একটি মাইএসকিউএল ছক (table) তৈরি করা
মাইএসকিউএল এ টেবিল তৈরি করতে 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 )
উপরের টেবিল তৈরির জন্য কিছু নির্দেশনা
ডাটা টাইপ করার পরে, প্রতিটি কলামের জন্য অন্যান্য যে ঐচ্ছিক বৈশিষ্ট্যগুলি নির্দিষ্ট করতে পারেন তা নিচে দেওয়া হল :
- NOT NULL –যে কলামকে NOT NULL করা হবে তার অবশ্যই একটা মান (value) থাকতে হবে। মান (value) না থাকলে প্রকাশ এর অনুমতি পাবে না।
- DEFAULT value – যখন কোন মান (value) গৃহীত না হয়, তখন কোন ডিফল্ট (default) মান (value) যোগ করা ।
- UNSIGNED – কলাম এ শুধুমাএ সংখ্যা ধারনের জন্য ব্যবহৃত হয়। শুধুমাএ সংরক্ষিত তথ্যের ইতিবাচক সংখ্যা এবং শূন্য সংখ্যার সীমা নিয়ন্ত্রণ করে।
- AUTO INCREMENT – মাইএসকিউএল স্বয়ংক্রিয়ভাবে মান নিয়ন্ত্রণ করে।
- PRIMARY KEY –কোন টেবিল এর সারিকে স্বতন্ত্রভাবে সনাক্ত করতে ব্যবহৃত।
যদি কোন টেবিল এ primary key কলাম থাকে (এই ক্ষেত্রে ধরলাম “id” কলামটিকে primary key করা হয়েছে) তাহলে এর মধ্যকার ডাটা এই টেবিলের সংরক্ষিত ডাটা এর মধ্যে ইউনিক হতে হবে।
নিম্নলিখিত উদাহরণ এ আমরা দেখবো পিএইচপি দ্বারা কিভাবে টেবিল তৈরি করতে হয়-
উদাহরণ (MySQLi Object-oriented)
< ?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 )";
if ($conn->query($sql) === TRUE) { echo "Table MyGuests created successfully"; } else { echo "Error creating table: " . $conn->error; }
$conn->close(); ?>
উদাহরণ (MySQLi Procedural)
< ?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 )";
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 )"; // 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; ?>