Додавання зображень до бази даних MySQL через PHP. Як зробити запис до бази даних MySQL, використовуючи PHP код Додавання в mysql через php

Останнє оновлення: 1.11.2015

Для додавання даних використовується вираз "INSERT":

$query ="INSERT INTO VALUES(NULL, "Samsung Galaxy III","Samsumg")";

Вираз "INSERT" вставляє до таблиці один рядок. Після ключового слова INTO вказується назва таблиці, а після VALUES у дужках вказуються набір значень для всіх колонок. Так як у нас у таблиці три стовпці, ми вказуємо три значення.

Так як у минулій темі при створенні таблиці ми вказували наступну черговість стовпців: id, name, company, то в даному випадку для стовпця id передається значення NULL, для name – "Samsung Galaxy III", а для company – "Samsumg".

Оскільки стовпець id визначено як AUTO_INCREMENT, то нам необов'язково вказувати для нього певне числове значення, і можна передати значення NULL, а MySQL надасть стовпцю наступне доступне значення.

Тепер розглянемо додавання даних з прикладу. Створимо файл create.phpз наступним вмістом:

Дані додані"; ) // закриваємо підключення mysqli_close($link); ) ?>

Додати нову модель

Введіть модель:

Виробник:

Тут код взаємодії з базою даних об'єднаний з функціональністю форм: за допомогою форми ми вводимо дані для додавання до бд.

Безпека та MySQL

Тут ми використали функцію mysqli_real_escape_string(). Вона служить для екранізації символів у рядку, який потім використовується у запиті SQL. Як параметри вона приймає об'єкт підключення та рядок, який треба екранувати.

Таким чином, ми застосовуємо екранізацію символів фактично двічі: спочатку для sql-виразу за допомогою функції mysqli_real_escape_string(), а потім для html за допомогою функції htmlentities(). Це дозволить нам захиститися відразу від двох видів атак: XSS-атак та SQL-ін'єкцій.

У цьому посібнику ви познайомитеся з тим, як почати керувати базою даних із вашого PHPскрипт. Ви вивчите додавання запису до таблиці MySQL,використовуючи PHP код. Перш ніж почати, ознайомтесь з нашими іншими посібниками, які розкривають основні кроки роботи з PHP та базами даних – підключення з PHP до бази даних MySQL (англ.).

Перед початком перевірте наявність наступного:

  • Доступ до вашої панелі керування хостингом

Крок 1 - Створення таблиці

Насамперед, нам потрібно створити таблицю для ваших даних. Це дуже проста процедура, яку ви можете зробити в phpMyAdminз вашої панелі керування хостингом. Ми вже описували процес створення бази даних MySQL у попередньому посібнику, тому ми пропустимо цей момент тут.

Після входу на сторінку phpMyAdmin ви побачите подібну картину:

Створимо таблицю під назвою Studentsдля нашої бази даних u266072517_name. Створити нову таблицю можна за кнопкою Create Table. Після цього ви побачите нову сторінку, де можна ввести всі необхідні дані для своєї таблиці:

Це найпростіший спосіб створення таблиці, для отримання більшої інформації щодо структури таблиці/бази даних та які налаштування можна використовувати для кожного поля, зверніться до офіційної документації phpMyAdmin (англ.).

Наведемо тут кілька простих пояснень полів, які ми будемо використовувати:

  • Name– це ім'я поля. Буде відображено у верхній частині вашої таблиці.
  • Type– тут можна встановити тип поля. Наприклад, ми вибираємо varchar, тому що тут потрібно ввести рядок з ім'ям (у якому є букви, не цифри).
  • Length/Values– використовується для визначення максимальної довжини запису в цьому полі.
  • Index– ми використовуємо індекс “Primary” для нашого поля “ID”. При створенні таблиці рекомендується мати одне поле ID. Вона використовується для індексації записів таблиці, коли налаштовуються взаємозв'язку між таблицями. Тут також можна відзначити "A_I", що означає Auto Increment. Ця установка автоматично збільшуватиме індекс (1,2,3,4…).

Натисніть Saveі вашу таблицю буде створено.

Крок 2 - Створення PHP коду та додавання запису до таблиці MySQL

Варіант 1 - Метод MySQLi

Насамперед, потрібно встановити з'єднання з базою даних, згідно з нашим попереднім посібником . Після цього ми можемо продовжити із SQL запитом на додавання запису до таблиці MySQL – INSERT. Тут повний приклад коду з підключенням та методом вставки:

" . mysqli_error($conn); ) mysqli_close($conn); ?>

Таким чином перша частина коду (рядки 3 – 18 ) відносяться до частини встановлення з'єднання до бази даних. Ми не будемо знову проходити по цій частині, якщо ви хочете знати, що означає кожен рядок, зверніться до нашого попереднього керівництва, як підключитися до бази даних (англ.).

Почнемо з рядка 19 :

$sql = "INSERT INTO Students (name, lastname, email) VALUES ("Thom", "Vial", " [email protected]")";

Це найважливіший рядок коду, вона робить усе, що ми описуємо у цьому посібнику – додавання записи в таблицю MySQL до бази даних. INSERT INTO– це вираз, який додає запис до зазначеної таблиці бази даних MySQL. У нашому прикладі ми додаємо дані до таблиці Students.

Рухаючись далі, у дужках, ми визначаємо поля таблиці, значення яких будемо додавати: (name, lastname, email). Дані будуть додані у певному порядку. Якщо ми напишемо (email, lastname, name)значення будуть додані в іншому порядку.

Наступна частина значення VALUES. Тут ми задаємо наші значення раніше вказані поля. Таким чином, кожне поле набуде свого значення. Наприклад, у нашому випадку це буде щось на зразок: name = Thom, lastname = Vial, email = [email protected] .

Що важливо відзначити, що тут ми формуємо запит SQL, використовуючи код PHP. SQL запити повинні бути укладені в лапки. У нашому прикладі, все між лапками і те, що йде після $sql = це SQL запит.

Наступна частина коду ( 20 – 22 рядки) запускає наш запит та проводить перевірку успішності виконання запиту:

If (mysqli_query($conn, $sql)) ( echo "New record created successfully"; )

Виводиться повідомлення про успіх, якщо запит був запущений правильно.

І остання частина ( 22 – 24 рядки) показують інше повідомлення на випадок невдалого виконання нашого запиту:

Else ( echo "Error: " . $sql . "
" . mysqli_error($conn); )

Цей код відображає нам повідомлення про помилку, якщо щось пішло не так.

Варіант 2 – Метод об'єктів даних PHP (P HP D ata O bject)

Як і в попередньому прикладі, нам потрібно насамперед виконати підключення до бази даних, яке здійснюється при створенні нового об'єкта PDO – попереднє керівництво розповідає про те, як це відбувається. Оскільки підключення до бази даних MySQL – це PDO об'єкт, ми повинні використовувати різні PDO 'методи' (своєрідні функції, які є частиною певного об'єкта) для підготовки та запуску запиту. Методи об'єктів викликаються таким чином:

$the_Object->the_Method();

PDO дозволяє підготувати SQL код перед його виконанням. Запит SQL обчислюється та коригується перед запуском. Так, проста атака шляхом ін'єкції SQL може бути виконана заповнюючи код SQL в полі форми. Наприклад:

// User writes this in username field of login form thom"; DROP DATABASE user_table; // The final query becomes this "SELECT * FROM user_table WHERE username = thom"; DROP DATABASE user_table;

Оскільки SQL код синтаксично правильний, точка з комою робить з DROP DATABASE user_tableновий запит SQL, і вашу таблицю користувачів видалено. Вирази, що готуються, не дозволяють символи і ; для завершення вихідного запиту, та інструкція DROP DATABASEніколи не виконається.

Завждивикористовуйте запити, що готуються, коли відправляєте або отримуєте дані з бази даних з PDO.

Для використання висловів, що готуються, потрібно створити нову змінну, яка викличе метод prepare()об'єкт бази даних.

У правильному вигляді код виглядає:

$servername = "mysql.hostinger.com"; $database = "u266072517_name"; $username = "u266072517_user"; $password = "buystuffpwd"; $sql = "mysql:host=$servername;dbname=$database;"; $dsn_Options = ; // Create a new connection to the MySQL database using PDO, $my_Db_Connection is an object try ( $my_Db_Connection = новий PDO($sql, $username, $password, $dsn_Options); echo "Connected successfully"; ) catch (PDOException $ error) ( echo "Connection error: " . $error->getMessage(); ) // Налаштувати параметри для людини, щоб отримати до вашого значення $first_Name = "Thom"; $last_Name = "Vial"; $email = " [email protected]"; // Тут ми створили варіант, що заголовок () метод з Database об'єкт // SQL SQL, який ви збираєтеся враховувати як параметр, і placeholders є як цей:placeholder_name $my_Insert_Statement = $my_Db_Connection-> prepare("INSERT INTO Students (name, lastname, email) VALUES (:first_name, :last_name, :email)"); // Now we tell the script which variable each placeholder actually refers to using the bindParam() method // First Parameter is placeholder in the statement above - Second Parameter is a variable that it should refer to $my_Insert_Statement->bindParam(:first_name, $first_Name); $my_Insert_Statement->bindParam(:last_name, $last_name bindParam(:email, $email); // Execute the query using the data we just defined // The execute() method returns TRUE if it is successful and FALSE if it is not, allowing you to write your messages here if ( $my_Insert_Statement->execute()) ( echo "New record created successfully"; ) el se (echo "Unable to create record"; ) // При цьому пункті ви можете змінити значення параметрів і execute до будь-якого часу до database $first_Name = "John"; $last_Name = "Smith"; $email = " [email protected]$my_Insert_Statement->execute(); // Execute again now that the variables have changed if ($my_Insert_Statement->execute()) ( echo "New record created successfully"; ) else ( echo "Unable to create record"; )

У рядках 28, 29 та 30 ми використовуємо метод bindParam()об'єкт бази даних. Є так само метод bindValue(), відрізняється від попереднього.

  • bindParam() –цей метод підраховує дані, коли метод execute()досягнуто. Перший раз, коли скрипт доходить до методу execute()він бачить, що $first_Nameпосилається на “Thom”, пов'язує це значення та виконує запит. Коли скрипт добирається вдруге до методу execute(), він дивиться, що $first_Nameтепер посилається на "John", пов'язує це значення і запускає запит знову з новим значенням. Важливо розуміти, що ми створюємо запит один раз і підставляємо різні дані в різних місцях скрипта.
  • bindValue() –цей метод обчислює дані, щойно до нього доходить черга. Оскільки значення $first_Nameбуло поставлено як “Thom”, на момент, коли ми досягли методу bindValue(), воно буде використано при виклику методу execute()для $my_Insert_Statement.

Зверніть увагу, що ми повторно використовуємо змінну $first_Nameі задаємо їй нове значення вдруге. Якщо ви перевірите свою базу даних після запуску цього скрипта, там будуть обидва із заданих імені, всупереч цьому значення змінної $first_Nameбуде одно "John" наприкінці цього скрипта. Пам'ятайте, що PHP оцінює вміст скрипта перед його запуском.

Якщо ви зміните свій скрипт замінивши bindParamна bindValue, ви додасте до бази MySQL “Thom Vial” двічі до бази даних і John Smith буде проігноровано.

Крок 3 - Перевірка успішності виконання та вирішення спільних питань

Якщо запит, який ми запустили в базі даних MySQL, успішно, ми побачимо таке повідомлення:

Вирішення поширених помилок

MySQLi

В іншому випадку замість повідомлення, наведеного вище, буде показано повідомлення про помилку. Наприклад, давайте припустимо одну синтаксичну помилку в нашому коді і ми отримаємо таке:

Як бачимо, перша частина коду гаразд, підключення було успішно встановлено, але запит SQL під час зіткнувся з невдачею.

"Error: INSERT INTO Students (name, lastname, email) VALUES ("Thom", "Vial", " [email protected]") Ви маєте віру в вашу SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to using near "(name, lastname, email) VALUES ("Thom", "Vial", " [email protected]")" at line 1"

Допущено синтаксичну помилку, яка призводить до невдачі у виконанні нашого скрипта. Помилка була тут:

$sql = "INSERT INTO Students (name, lastname, email) VALUES ("Thom", "Vial", " [email protected]")";

Як ви бачите, ми використовуємо фігурні дужки замість круглих. Це не так і призводить до синтаксичної помилки в нашому скрипті.

PDO

У рядку 7 підключення PDO режим обробки помилок встановлено в 'display all exceptions' (відображати всі винятки). Якщо ви приберете це зі скрипту і запит зазнає невдачі, ви не отримаєте жодного повідомлення про помилку. З увімкненими винятками, будуть відображатися конкретні проблеми. В основному, це краще використовувати, коли розробляєте скрипт, так як це може виявити імена баз даних та таблиць, які ви б хотіли сховати від будь-кого, хто може отримати несанкціонований доступ до ваших даних. У випадку вище, коли фігурні дужки використовувалися замість круглих, помилка виглядає як показано нижче:

Недостатній error: Вирішення виключення "PDOException" with message "SQLSTATE: Syntax error or access violation: 1064 Ви маєте віру в вашу SQL syntax; check the manual that corresponds to your mySQL server version for right syntax to used near "(name, lastname, email) VALUES ("Thom", "Vial", " [email protected]")" at line 1"

Інші проблеми, з якими ви можете зіткнутися:

  • Невірно вказані поля (неіснуючі поля чи помилки написання назв).
  • Невідповідність типу значення типу поля. Наприклад, коли ми хочемо присвоїти значення числа 47 полю Name, ми отримаємо помилку, тому що передбачається, що значення буде рядком. Але, якщо ви вкажете число в лапках, наприклад, “47” , помилки не буде, тому що наше число буде записано як рядок у цьому полі.
  • Спроба ввести дані в таблицю, якої немає або помилка в написанні назви таблиці.

Всі ці помилки можуть бути виправлені за керівництвом з виправлення помилок або перевіряючи журнал помилок (англ.).

Після успішного додавання даних ми повинні побачити їх у нашій базі даних. Ось приклад таблиці, в яку ми додали наші дані, якщо дивитися в phpMyAdmin.

Висновок

У цьому посібнику ви вивчили, як використовувати PHP код для додавання запису до таблиці MySQLз використанням MySQLiі PDO. Також розглянули випадки поширених помилок та їх вирішення. Знання того, як використовувати PHP код, щоб додати в базу даних MySQL стане в нагоді незалежно від того, ви вчитеся програмувати або вже створюєте свій сайт.

У цьому уроці ми навчимося вносити до бази даних MySql, дані, введені користувачем у форму. Ви дізнаєтесь, як з'єднуватися з базою даних MySql з коду веб-сторінки, а також обробляти та вносити дані в базу.


Минулого уроку я розповіла Вам про те, як встановити Денвер на Ваш комп'ютер, як створити свою базу даних, користувача для неї, як створити таблицю в базі даних, і ми заповнили її одним записом.

У цьому уроці ми створимо html документ для введення інформації користувача, а також php файл-обробник цієї інформації, який оброблятиме дані, з'єднуватиметься з базою даних MySql і вставлятиме туди нові записи.

Переходячи від слів до справи, давайте почнемо.

Додаємо дані користувача в базу MySql з веб сторінки

Перший етап: створюємо html форму для введення даних

З самого початку нам потрібно підготуватися до роботи з php, MySql та до тестування написаного коду на локальному комп'ютері. Для цього:

1. Запустіть Denwer на комп'ютері.

2. Відкрийте віртуальний диск, створений Денвером (наприклад, я маю диск “Z”). Відкрийте його далі: home – localhost – www – там створіть нову папку і дайте їй назву (я дам назву “db1”).

3. Якщо Ви працюєте в Adobe Dreamweaver, то зайдіть у менеджер сайтів, там натисніть на кнопку «New», як шлях виберіть шлях до щойно створеної папки, в полі вище можете дати ім'я сайту, після цього натисніть Save – Done. Після цього у правій панелі Adobe Dreamweaver з'явиться Ваша папка.

1. Зараз ми створимо звичайний html файл (назвемо його info_form.html і збережемо у щойно створеній папці db1) і пропишемо там код форми для введення інформації. У нашій таблиці users бази даних new_db є чотири поля, які міг би заповнити користувач (поле id буде заповнюватися автоматично). Виходячи з цього, можна створити код наступного вигляду:

Untitled Document










Тут у параметрі action нашої форми прописаний файл form.php. Він буде файлом обробником, який ми створимо далі.

Давайте створимо файл style.css для надання стилів нашій формі. Він вже підключений у коді, так що залишилося тільки створити його, помістити в ту ж папку, що і html файл і прописати в ньому наступний код:

Body(width:400px; margin:0 auto; background:#F8F4B6;) label(display: block; float: left; width: 150px; padding: 0 10px; margin: 18px 0 0; text-align: right;) # submit(float:right; margin:5px 50px 10px 0;)

Тепер форма виглядає так:

Однак, якщо Ви введете дані та спробуєте надіслати форму, то побачите помилку, тому що жодного файлу form.php, що лежить у каталозі scripts, не існує.

Створити файл-обробник – це наше завдання.

2. Давайте всередині папки db1створимо папку з назвою "scripts". У ній ми зберігатимемо всі наші скрипти взаємодії з базою даних MySql.

Після створення папки створіть новий php файл і збережіть його в папці scripts під ім'ям form.php.

Але перед тим як безпосередньо зайнятися файлом-обробником інформації потрібно спочатку підключитися до нашої бази даних. Я пропоную створити для цього окремий файл і ось чому:

Швидше за все, у Вашому проекті Вам доведеться з'єднуватися з базою даних MySql не тільки з одного файлу. Як правило, з базою даних взаємодіють різні файли проекту.
Дуже непрактично в кожному такому файлі прописувати той самий код підключення до бази. А якщо таких файлів, наприклад, буде 50 і одного прекрасного дня ви зміните пароль для користувача і Вам доведеться шукати всі ці 50 файлів і в кожному робити виправлення.
Набагато зручніше використовувати для підключення окремий файл, який буде підключений до кожного файлу, де має бути з'єднання з базою даних MySql. У такому разі вносити виправлення потрібно лише в один файл.

Отже, давайте створимо новий php файл, назвемо його connect.phpта помістимо в папку для скриптів. У ньому пропишемо код з'єднання з нашою базою даних MySql, а також код, який повідомлятиме про помилки у разі їх виникнення. Зверніть увагу, що як параметри Вам необхідно буде прописати Ваше ім'я користувача, Ваш пароль та Ваше ім'я бази даних. Як хост повинен бути місцевий host.

Помилка підключення до бази даних! " . mysql_error() . "

"); mysql_select_db("new_db")//параметр у дужках ("ім'я бази, з якою з'єднуємося") or die("

Помилка вибору бази даних! ". mysql_error() . "

"); ?>

Тепер перейдемо у файл form.php і підключимо до нього файл connect.php за допомогою наступного коду:

Якщо зараз Ви спробуєте надіслати форму, то побачите після відправки порожню веб-сторінку. Це нормально, тому що ми просто з'єдналися з базою і поки що нічого не виводимо.

Якщо Ви побачили повідомлення про помилку, перевірте правильність всіх параметрів (ім'я користувача, пароль, ім'я хоста: localhos, ім'я бази даних), а також будьте впевнені, що Ваш Денвер включений.

3. Ми вдало поєдналися з базою даних MySql, а тепер нам потрібно прийняти введені у форму дані в наш файл обробник. У цьому нам допоможуть атрибути “name”, які є у html документі.

Для отримання даних ми скористаємось спеціальною змінною php, що забезпечує нас всією інформацією з веб-форми. Ця змінна називається "$_REQUEST".

Пропишіть у файлі form.php після підключення файлу connect.php наступний код:

$first_name = $_REQUEST["first_name"]; $last_name = $_REQUEST["last_name"]; $email = $_REQUEST["email"]; $facebook = $_REQUEST["facebook"];

4. Дані у файл ми отримали і занесли в змінні. Тепер потрібно надіслати ці дані до нашої таблиці бази даних MySql. Для цього нижче потрібно прописати наступний код:

$insert_sql = "INSERT INTO users (first_name, last_name, email, facebook)" . "VALUES("($first_name)", "($last_name)", "($email)", "($facebook)");"; mysql_query($insert_sql);

Тут спочатку ми формуємо запит, говорячи, що нам потрібно вставити відповідні змінні у поля таблиці “users”. Заносимо цей запит у змінну $insert_sql. А потім за допомогою спеціальної функції mysql_query виконуємо цей запит.

Якщо зараз Ви заповните та відправте форму, а потім подивіться в таблицю “users” Вашої бази даних, то побачите новий запис, який там з'явився після надсилання.

5. Ми вставили новий запис із веб-сторінки в таблицю бази даних MySql. Тепер хочеться трохи торкнутися формату, в якому вставляються наші дані.

По-перше, потрібно подбати про ту ситуацію, коли людина, заповнюючи форму, може поставити непотрібні прогалини на початку введення інформації. Їх треба обрізати.

По-друге, у нас є поле для Facebook. Якщо ми в подальшому захочемо виводити цю інформацію як посилання, необхідно подбати, щоб дані в цьому полі зберігалися в правильному форматі (тобто «http://www.facebook.com/ідентифікатор на facebook»). Але користувач не завжди вводитиме ці дані так як нам потрібно. Він може ввести: "www.facebook.com/ідентифікатор на facebook", "facebook.com/ідентифікатор на facebook" або просто "/ідентифікатор на facebook".

Цих ситуацій слід уникати. Для цього підкоригуємо наш код. Можливі зайві прогалини ми обріжемо за допомогою функції trim, а перевіряти правильність введеного URL для facebook буде функція preg_match. Таким чином, весь код файлу form.php буде виглядати наступним чином:

Untitled Document Новий запис вставлено до бази!

"; ?>

Про функцію preg_match:
Це функція пошуку з регулярними висловлюваннями.

Перший параметр у дужках – це регулярний вираз, другий – рядок, де потрібно шукати.

Функція повертає лише перший збіг: 0 – якщо збігів немає, 1 – якщо збіг є.

Спробуйте тепер навмисно заповнити форму, зробивши непотрібні прогалини на початку заповнення якогось із полів і ввівши адресу для facebook без http:// або взагалі ввівши лише ідентифікатор facebook. Надішліть запит, а потім перейдіть в базу даних і Ви побачите, що, незважаючи на не зовсім коректне заповнення, дані мають саме той вид, який нам потрібен.

На цьому закінчуватиму цей урок. Усі файли цього уроку Ви можете завантажити у вихідних записах (тільки не забудьте виправляти параметри на свої файли connect.php).

А в наступному уроці ми навчимося отримувати інформацію з бази даних MySql, вибирати потрібні записи та виводити їх на екран. Щоб не пропустити наступний урок, підписуйтесь на оновлення блогу за допомогою форми підписки, яку Ви бачите нижче.

Залишайте свої коментарі та ділитесь з друзями за допомогою кнопок соціальних мереж.

Успіхів і до зустрічі у наступному уроці!

У цьому пості хочу розповісти, як передати до Бази Даних, введені дані у форму. І так ми створюємо просту форму, де у нас буде два поля: ім'я користувача та його електронна пошта:

Ваше ім'я:
Ваш e-mail:


Ця форма може застосовуватися для реєстрації нового користувача, для розсилки новин, для збору статистики, та навіщо завгодно... Загалом у цю форму користувач забиває свої дані: ім'я та пошту, натискає на кнопку і далі дані переходять у php скрипт:

$name = $_POST["name"]; $email = $_POST["email"]; $result = mysqli_query("INSERT INTO user (name, email) VALUES ("$name", "$email")"); if ($result) ( echo "Дані успішно збережені!"; ) else ( echo "Сталася помилка, будь ласка, повторіть спробу."; )


Що ж у цьому скрипті відбувається? Зараз розберемося!
Введені у форму дані, методом POST переходять у php скрипт (який написаний вище), і за допомогою глобального масиву $_POST дані формуються в змінні $name та $email:

$name = $_POST["name"]; $email = $_POST["email"];


Після того, як змінні готові для занесення до бази, складаємо запит. Але перш ніж Ваші скрипти повинні бути вже підключені до БД, як підключитися до БД, я писав у цій темі: .Сам запит має такий вигляд:

$result = mysqli_query("INSERT INTO user (name, email) VALUES ("$name", "$email")");


У цьому коді ми позначили, що до осередків name і email , які у таблиці user , будуть додані такі змінні: $name і $email .
Якщо все пройшло успішно, ми отримаємо повідомлення з умови:

Дані успішно збережено!


Якщо ж виникли якісь проблеми та дані не були занесені, ми отримаємо повідомлення про помилку:

Відбулася помилка, будь ласка, повторіть спробу.


От і все!

*** *** *** *** ***

За бажанням можна додати більше полів для введення інформації, наприклад, нам потрібно додати поле для введення міста користувача. У нас вже є готовий скрипт (написаний вище), тепер просто додамо поле Ваше місто, змінну назвемо $city . І так у форму введення даних, після:

Ваш e-mail:


додаємо:

Ваше місто:


У php скрипті, після:

$email = $_POST["email"];


додаємо:

$city = $_POST["city"];


Ну і звичайно у запиті додаємо теж, ось так:

$result = mysqli_query("INSERT INTO user (name, email, city) VALUES ("$name", "$email", "$city")");


Ось що має вийде в результаті:
Форма введення:

Ваше ім'я:
Ваш e-mail:
Ваше місто:


Скрипт:

$name = $_POST["name"]; $email = $_POST["email"]; $city = $_POST["city"]; $result = mysqli_query("INSERT INTO user (name, email, city) VALUES ("$name", "$email", "$city")"); if ($result == true) ( ​​echo "Дані успішно збережені!"; ) else ( echo "Сталася помилка, будь ласка, повторіть спробу."; )


Як бачите нічого складного! При необхідності можна додати ще поле, і ще, і ще...

Коментарі, перенесені з блогу

СЕРГІЙ
14.09.2016 о 01:25
Доброго дня!
Цікавить таке питання: як найпростіше організувати зберігання даних та налаштувань програми без використання бд? Не хочеться прив'язуватися до MySQL або Access.

ADMIN
14.09.2016 о 22:14
Доброго дня!

Properties.Settings
App.Config
XML файл
серіалізація
Спробуйте вибрати щось із цього зі списку.

МИКОЛА
16.09.2016 о 02:28
Здрастуйте, як видалити виділений рядок у dataGridVIew з dataGridVIew та phpMyAdmin.

PhpMyAdmin? Це лише оболонка для роботи з базою даних, чи можете пояснити?

МИКОЛА
18.09.2016 о 02:24
Необхідно щоб виділений рядок видалялася з DataGridView і з бази даних.

ADMIN
19.09.2016 о 07:00
Як видалити рядок у базі даних Mysql – додав статтю.

МИКОЛА
20.09.2016 о 09:20
Велике дякую.

ДІМА
20.09.2016 о 10:24
Здрастуйте, а чи можна цей спосіб реалізувати не через DataGridView, а через ComboBox? Якщо так, то як? Спасибі.

ADMIN
22.09.2016 о 03:21
Вітання. Приклад:

ГЕНАДІЙ
22.09.2016 о 18:25
чому мені до бази даних вноситися такий текст System.Windows.Forms.TextBox, Text: ге

стаття ось це (ге) до кінця це написано гена хоч в налаштуваннях таблиці вказаний текст. слово гена повинно було уміститися далі

ADMIN
24.09.2016 о 04:17
Швидше за все невірно написаний SQL запит, наприклад:

У textBox1 вводимо ім'я: Гена.

Sql запит: «Insert в ім'я таблиці values(textBox1, ..)»; Результат: System.Windows.Forms.TextBox

А треба передавати: "Insert into ім'я таблиці values(textBox1.Text, ..)";
Результат: Гена

ГЕНАДІЙ
24.09.2016 о 18:41
Та так воно і є. Спасибі

СЕРГІЙ
25.09.2016 об 11:51
Добрий день. А як реалізувати додавання до БД через textBox?

ADMIN
26.09.2016 о 20:53
Все теж саме в принципі. Наприклад, візьмемо останній приклад, у ньому потрібно:

//створюємо параметри та додаємо їх у колекцію cmd.Parameters.AddWithValue("@Name", textBox1.Text); cmd.Parameters.AddWithValue("@LastName", textBox2.Text);

тепер параметри: Name і LastName отримують значення, введені в textbox-и, і передають їх у БД

ЛІНАРУ
27.09.2016 о 17:45
Привіт, як виділений рядок у dataGridVIew та phpMyAdmin?

ADMIN
29.09.2016 о 02:06
Я не знаю, як можна виділений рядок у phpMyAdmin. А в dataGridView, наприклад, це можна зробити за допомогою події SelectionChanged.

PSH
30.09.2016 о 03:48
2Лінара:
Якщо так хочете редагувати рядки, візьміть інструмент а-ля HediSQL, налаштуйте та змінюйте рядки.

2admin
Доброго дня! Спасибі за матеріали - все дуже круто викладено)
Питання: додаю дані таким запитом (він тестовий):

String sql = "INSERT INTO users (`FIO`, `Tour`, `Count`, `Cost`, `Date`, `Passport`, `Birth`) VALUES ("Колян", "Москва", "1+1 ", 1100, "2011-11-11", "1111 1111", "9.11.1900");";

Дані вносяться все ок, але в БД (mysql) замість кирилиці виявляються «????».

Visual studio говорить, що System.String – послідовність Юнікоду.

Також пробував:

ALTER DATABASE `test` COLLATE "koi8r_general_ci"; ALTER TABLE `users` COLLATE="koi8r_general_ci"; ALTER DATABASE `test` COLLATE "utf8_unicode_ci"; ALTER TABLE `users` COLLATE="utf8_unicode_ci";

Але не допомагає.
У чому може бути справа? Різні кодування VS і БД? Або що?
Могли б направити що почитати/змінити.
спасибі

ADMIN
01.10.2016 о 09:49
Вітання.

У БД (і таблиці) зіставлення utf_general_ci

Таке зіставлення хіба є? Можливо utf8_general_ci?

Зазвичай створюють БД Mysql, вибираючи порівняння utf8_general_ci, тому проблем з кирилицею не виникає, якщо звичайно з клієнта не приходять кракозябри на сервер.

COLLATION використовується для порівняння, а в цьому ж випадку важливе кодування (charset). Тому спочатку необхідно переконатися, що вона виставлена ​​на сервері вірно, наприклад в utf8, а не latin1.

При підключенні через.net конектор (за замовчуванням) використовується latin1, тому іноді потрібно явно вказати кодування utf8 в рядку підключення:

MySqlConnection mycon; mycon = new MySqlConnection("server=127.0.0.1;uid=vasya;pwd=123;database=test;Charset=utf8;"); // MySqlConnectionStringBuilder: mysqlCSB.CharacterSet = "utf8";

PSH
01.10.2016 об 11:34
Ви маєте рацію, описався, utf8_general_ci!
Так допомогло; Charset = utf8;
Спасибі величезне!

СЕРГІЙ
02.10.2016 об 11:02
Дякую за робочий приклад, потрібний. Питання
Я створив текстове поле в яке хотів би вводити айпі-адресу бази даних, але не знаю, як підставити ці дані ось сюди

String conStr = " [email protected];user=test;" +
"database=test;password=test;";
Підкажіть будь ласка як вставляти дані з текстових полів у windows form у цю конструкцію.

ADMIN
03.10.2016 об 11:50
"[email protected];user=...
Взагалі краще замість такого рядка використовувати властивості, як у цій статті, або метод String.Format()

OLGA2203
15.05.2017 о 20:14

String Connect = “Server=127.0.0.1;Port=3306;Database=base;Data Source=localhost;user=root;”; MySqlConnection con = New MySqlConnection(Connect); con.Open(); //Встановлюємо з'єднання з базою даних. MySqlCommand cmd = New MySqlCommand(); cmd.CommandText = @”INSERT INTO (ID,Category,Name,TradeMark,Price,Photo,Size,Color,Material,Count) VALUES (@pr, @Category, @Name, @TradeMark, @Price, @Photo, @Size, @Color, @Material, @Count)”; cmd.Parameters.AddWithValue(“@pr”, counter); cmd.Parameters.AddWithValue(“@Category”, comboBox1.SelectedItem.ToString()); cmd.Parameters.AddWithValue(“@Name”, textBox1.Text); cmd.Parameters.AddWithValue(“@TradeMark”, textBox2.Text); cmd.Parameters.AddWithValue(“@Price”, Convert.ToInt32(textBox4.Text)); cmd.Parameters.AddWithValue("@Photo", textBox3.Text); cmd.Parameters.AddWithValue(“@Size”, textBox6.Text); cmd.Parameters.AddWithValue(“@Color”, textBox5.Text); cmd.Parameters.AddWithValue(“@Material”, textBox8.Text); cmd.Parameters.AddWithValue(“@Count”, Convert.ToInt32(textBox7.Text)); cmd.Connection=con; cmd.ExecuteNonQuery(); MessageBox.Show("Додавання пройшло успішно", "Додавання пройшло успішно", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);

Видається помилка "Column 'ID' cannot be null", прибираю додавання в стовпець ID - те саме про наступний стовпець пише і т.д.
Якщо вношу будь-які константні значення у дужках у VALUES, рядок до бази додається.
Підкажіть, будь ласка, у чому проблема? Мені потрібно записувати в базу даних саме дані, що вводяться через форму, та значення

Роутери