Въвеждане на данни в таблица
Процесът на добавяне на данни в таблица прилича на процеса на създаване на таблица в БД, но заявката е с друг синтаксис.
Синтаксисът на заявката в този случай е:
tbl_name – името на таблицата, в която ще се вмъкват редове;
col_name – имената на колоните, в които ще се добавя новата информаци. Както виждате, имената на колоните се отделят със запетаи.
Повече информация на адрес: http://dev.mysql.com/doc/
INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE]
[INTO] tbl_name
[PARTITION (partition_name,...)]
[(col_name,...)]
{VALUES | VALUE} ({expr | DEFAULT},...),(...),...
[ ON DUPLICATE KEY UPDATE
col_name=expr
[, col_name=expr] ... ]
INSERT – вмъква нов ред в съществуваща таблица;tbl_name – името на таблицата, в която ще се вмъкват редове;
col_name – имената на колоните, в които ще се добавя новата информаци. Както виждате, имената на колоните се отделят със запетаи.
Повече информация на адрес: http://dev.mysql.com/doc/
Ако списъка с колони и редове е празен, т.е., ако заявката ви има следния вид:
INSERT INTO tbl_name () VALUES();
INSERT създава редове, като във всяка колона се поставя подразбиращата й се стойност.
INSERT, който използва VALUE в синтаксиса, може да впише множество редове. За да направим това, списъка от стойностите за всяка колона, се поставя в средни скоби, които се отделят със запетая:
INSERT INTO tbl_name (a,b,c) VALUES (1,2,3), (4,5,6), (7,8,9);
LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE са модификатори на INSERT.
Ключовата дума DELAYED не е желателно да се използва.
Ако използвате ключовата дума LOW_PRIORITY, изпълнението на INSERT се отлага, до момента, в който няма други клиенти да четат или пишат в таблицата. Поради тази причина, клиента, който използва INSERT LOW_PRIORITY в заявката, понякога чака дълго време, докато успее да впише данни в таблицата.
Опцията HIGH_PRIORITY също не е желателна.
Ключовите думи LOW_PRIORITY и HIGH_PRIORITY оказват влияние единствено върху машината за съхраняване (storage engines). LOW_PRIORITY не бива да се използва с MyISAM таблици (в phpMyAdmin 4.0.9 машината за съхраняване на данните е InnoDB), защото изключва конкурентните вписвания на данни.
Ако използвате ключовата дума IGNORE, грешките, възникнали при изпълнението на INSERT, се игнорират.
INSERT INTO tbl_name () VALUES();
INSERT създава редове, като във всяка колона се поставя подразбиращата й се стойност.
INSERT, който използва VALUE в синтаксиса, може да впише множество редове. За да направим това, списъка от стойностите за всяка колона, се поставя в средни скоби, които се отделят със запетая:
INSERT INTO tbl_name (a,b,c) VALUES (1,2,3), (4,5,6), (7,8,9);
LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE са модификатори на INSERT.
Ключовата дума DELAYED не е желателно да се използва.
Ако използвате ключовата дума LOW_PRIORITY, изпълнението на INSERT се отлага, до момента, в който няма други клиенти да четат или пишат в таблицата. Поради тази причина, клиента, който използва INSERT LOW_PRIORITY в заявката, понякога чака дълго време, докато успее да впише данни в таблицата.
Опцията HIGH_PRIORITY също не е желателна.
Ключовите думи LOW_PRIORITY и HIGH_PRIORITY оказват влияние единствено върху машината за съхраняване (storage engines). LOW_PRIORITY не бива да се използва с MyISAM таблици (в phpMyAdmin 4.0.9 машината за съхраняване на данните е InnoDB), защото изключва конкурентните вписвания на данни.
Ако използвате ключовата дума IGNORE, грешките, възникнали при изпълнението на INSERT, се игнорират.
Въвеждане на данни в БД, получени от HTML форма
Ще ползвам форма, която вече съм създала (form.html можете да откриете на адрес: https://dreamlandpoly.blogspot.com/p/htmlformsandphp1.html#form).
Ще наречем новият файл DB_form.HTML.
Единственото нещо, което ще променим е ред 9. Премахнете го и на негово място добавете реда:
<form action="DB_HandleForm.php" method="post" target="_blank">
Крайният вид на файла DB_form.html е:
<!Doctype html> <html> <head> <title>HTML Форма</title> <meta http-equiv="Content-Type" content="text/html"; charset="UTF-8"> </head> <body> <form action="DB_HandleForm.php" method="post" target="_blank"> Име: <br/><input type=text name="firstname" /> <br/><br/> Фамилия: <br/><input type=text name="lastname" /> <br/><br/> Имейл адрес: <br/><input type=text name="email"/><br/><br/> Коментар: <br> <textarea name ="comments" ></textarea><br/><br/> <input type=submit name="submit" formenctype="multipart/form-data" value="Напред!"/> </form> </body> </html>
За получаване и обработване на данните отново ще ползвам вече създаден от мен файл HandleForm.php, който можете да откриете на адрес:
https://dreamlandpoly.blogspot.com/p/stillmoreforstrings-1.html#HandleForm
Копирайте файла, премахнете редовете от 23 до 37, съхранете файла като DB_HandleForm.php.
Добавяме имената на променливите за достъп до базата данни.
Добавяме променлива, която задава свързването към БД и заявката, която ще впише потребителските данни в БД.
Правим проверка дали данните са записани успешно.
https://dreamlandpoly.blogspot.com/p/stillmoreforstrings-1.html#HandleForm
Копирайте файла, премахнете редовете от 23 до 37, съхранете файла като DB_HandleForm.php.
Добавяме имената на променливите за достъп до базата данни.
Добавяме променлива, която задава свързването към БД и заявката, която ще впише потребителските данни в БД.
Правим проверка дали данните са записани успешно.
Крайният файл DB_HandleForm.php ще има вида:
<!DOCTYPE html>
<html>
<head>
<title>Резултати от формата</title>
<meta http-equiv="Content-Type" content="text/html"; charset="UTF-8">
</head>
<body>
<?php
session_start(); //стартира се сесия
/*Тази страница получава и обработва данните от „DB_form.html” */
if (isset($_POST['submit'])) {
$firstname = $_POST['firstname'];
$lastname = $_POST['lastname'];
$email = $_POST['email'];
$comments = $_POST['comments'];
//Съхранява стойностите на променливите
//$firstname, $lastname, $email, $comments
$_SESSION['firstname']= $_POST['firstname'];
$_SESSION['lastname']=$_POST['lastname'];
$_SESSION['email']= $_POST['email'];
$_SESSION['comments']= $_POST['comments'];
//Следващите четири реда служат за премахване на
//евентуални интервали
//в променливите $firstname, $lastname, $email и $comments
trim ($firstname);
trim ($lastname);
trim ($email);
trim ($comments);
//Задаваме имената на променливите за достъп до базата данни
$host = "localhost";
$user = "user";
$password = "password";
$DBName = "PolyDB";
$table_name = "Потребители";
//Свързваме се към MySQL сървъра и пишем заявката
//за вписване на данните от формата в БД
$link = new mysqli($host, "$user", "$password", "$DBName")
or die ("Невъзможно свързване");
$sql = "INSERT INTO $table_name (ID, Име, Фамилия, Имейл, Коментар)
VALUES ('0', '$firstname', '$lastname', '$email', '$comments')";
if ($link->query($sql) === TRUE) {
echo "Вашето потребителско име е" . " " .
"<span style = \"color: #EC2929;\"><b>$firstname </b></span>". ".<br/>";
echo "Вашата фамилия e" . " ".
"<span style = \"color: #EC2929;\"><b>$lastname </b></span>". ".<br/>";
echo "Вашият имейл адрес е" . " ".
"<span style = \"color: #EC2929;\"><b> $email</b></span>" . ".<br/>";
echo "Вашият коментар е:" . " " .
"<span style = \"color: #EC2929;\"><b> $comments </b></span>
<br/>". "<br/>";
echo "<span style = \"color: #0000FF;\">
Данните са успешно съхранени в базата данни.</span><br/>";
}
else {
echo "<span style = \"color: #0000FF;
\">Данните не могат да бъдат вписани в БД!<
/span><br/><br/>". $link->error;
}
$link->close();
}
session_write_close (); //Пише сесийните данни и завършва сесията
?>
</body>
</html>
Съхранете файла и го качете на сървъра.
При включени Aphache и MySQL сървъри, отворете файла DB_form.html.
Въведете потребителските данни и кликнете върху бутона “Напред!”.
При включени Aphache и MySQL сървъри, отворете файла DB_form.html.
Въведете потребителските данни и кликнете върху бутона “Напред!”.


|
|
Няма коментари:
Публикуване на коментар