В тази статия ще създадем таблица в MySQL база данни през PHP скрипт, като използваме разширенията MySQLi (Procedural и Object-oriented) и PDO Object-oriented.
Таблиците в MySQL база данни имат свое уникално име и се състоят от редове и колони.
Изразът (командата) CREATE TABLE
се използва за създаване на таблица в MySQL.
Ще създадем таблица с име newsletter, с пет колони: id, firstname, lastname, email и regdate:
CREATE TABLE newsletter (
id INT(4) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
firstname VARCHAR(24) NOT NULL,
lastname VARCHAR(24) NOT NULL,
email VARCHAR(64),
regdate TIMESTAMP
)
Какво означават термините след имената на колоните в горната таблица?
Типът данни посочва какъв тип данни може да съдържа графата. След типа данни можете да посочите други незадължителни атрибути за всяка колона:
- NOT NULL – всеки ред трябва да съдържа стойност за тази колона, нулевите стойности не са позволени;
- VALUE DEFAULT – задайте стойност по подразбиране, която се добавя автоматично, когато не бъде подадена друга стойност;
- UNSIGNED – използва се за типове номера, ограничава съхраняваните данни до положителни числа и нула;
- AUTO INCREMENT – MySQL автоматично увеличава стойността на полето с 1 всеки път, когато се добавя нов запис;
- ПЪРВИЧЕН КЛЮЧ – използва се за уникално идентифициране на редовете в таблицата. Колоната с настройка на PRIMARY KEY често е идентификационен номер и много често се използва с AUTO_INCREMENT. Всяка таблица трябва да има колона с първичен ключ (в този случай колона id). Стойността му трябва да бъде уникална за всеки запис в таблицата.
Следващите примери показват как да създадете MySQL таблицата в PHP скрипт.
Създаване на MySQL таблица с MySQLi Object-oriented разширение
<?php
include 'dbvar.php';
// Create connection
$conn = new mysqli($servername, $username, $password, $database);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
// sql to create table
$sql = "CREATE TABLE newsletterMysqliOBJ (
id INT(4) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
firstname VARCHAR(24) NOT NULL,
lastname VARCHAR(24) NOT NULL,
email VARCHAR(64),
regdate TIMESTAMP
)";
if ($conn->query($sql) === TRUE) {
echo "Table newsletterMysqliOBJ created successfully";
} else {
echo "Error creating table: " . $conn->error;
}
$conn->close();
?>
Създаване на MySQL таблица с MySQLi Procedural разширение
<?php
include 'dbvar.php';
// Create connection
$conn = mysqli_connect($servername, $username, $password, $database);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
// sql to create table
$sql = "CREATE TABLE newsletterProcedural (
id INT(4) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
firstname VARCHAR(24) NOT NULL,
lastname VARCHAR(24) NOT NULL,
email VARCHAR(64),
regdate TIMESTAMP
)";
if (mysqli_query($conn, $sql)) {
echo "Table newsletterProcedural created successfully";
} else {
echo "Error creating table: " . mysqli_error($conn);
}
mysqli_close($conn);
?>
Създаване на MySQL таблица с PDO разширение
<?php
include 'dbvar.php';
try {
$conn = new PDO("mysql:host=$servername;dbname=$database", $username, $password);
// set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// sql to create table
$sql = "CREATE TABLE newsletterPDO (
id INT(4) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
firstname VARCHAR(24) NOT NULL,
lastname VARCHAR(24) NOT NULL,
email VARCHAR(64),
regdate TIMESTAMP
)";
// use exec() because no results are returned
$conn->exec($sql);
echo "Table newsletterPDO created successfully";
}
catch(PDOException $e)
{
echo $sql . "<br>" . $e->getMessage();
}
$conn = null;
?>
Включваме PHP функцията include()
Тъй като и в трите примера използваме една и съща база данни и в трите скриптови блока въвеждаме една и съща информация с данните за логване:
<?php
$servername = "localhost";
$username = "cpaneluser_connphpu";
$password = "OK5eetXgOeoB";
$database = "cpaneluser_connphpd";
?>
Тези четири реда код може да се добавят в един .php
файл с произволно име – dbvar.php
и чрез функцията include()
да бъдат достъпни за кода в mysql-table.php
файла:
include 'dbvar.php';
Освен това ако сменим паролата на базата данни ще трябва да направим промяна само на едно място – dbvar.php
, а не в три различни PHP блока, макар и в един файл.
Тест на кода от примерите
Тестваме създаването на таблицата по трите MySQL метода по същия начин както в статията за свързване с база дании – добавяме трите блока от примерите в един файл mysql-table.php
и го зареждаме в браузър:
Нека отворим phpMyAdmin и да погледнем как изглеждат нашите таблици:
В статията Вмъкване на множество записи в MySQL чрез PHP скрипт ще Ви покажем как се записва информация в базата данни през PHP скрипт тъй като в момента колоните на нашите таблици са празни.