Въвеждане на данни в таблица
Процесът на добавяне на данни в таблица прилича на процеса на създаване на таблица в БД, но заявката е с друг синтаксис.
Синтаксисът на заявката в този случай е:
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.
Въведете потребителските данни и кликнете върху бутона “Напред!”.


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