Гость
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Запись в базу данных mysql / 13 сообщений из 13, страница 1 из 1
07.02.2020, 12:51
    #39923892
malo13
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись в базу данных mysql
Можете помочь?
Хочу чтоб заполнялась база данных с помощью формы. но никак не получается.
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
<html>
<head>
 <title>Запись в БД через форму на php</title>
</head>
<body>
 <form method="POST" action="">
  <input name="name" type="text" placeholder="Имя"/>
  <input name="text" type="text" placeholder="Текст"/>
  <input type="submit" value="Отправить"/>
 </form>
</body>
</html>



if (isset($_POST['name']) && isset($_POST['text'])){

    // Переменные с формы
    $name = $_POST['name'];
    $text = $_POST['text'];
    
    // Параметры для подключения
    $db_host = "localhost"; 
    $db_user = "user"; // Логин БД
    $db_password = "123"; // Пароль БД
    $db_base = 'mybase'; // Имя БД
    $db_table = "mytable"; // Имя Таблицы БД
    
    // Подключение к базе данных
    $mysqli = new mysqli($db_host,$db_user,$db_password,$db_base);

    // Если есть ошибка соединения, выводим её и убиваем подключение
	if ($mysqli->connect_error) {
	    die('Ошибка : ('. $mysqli->connect_errno .') '. $mysqli->connect_error);
	}
    
    $result = $mysqli->query("INSERT INTO ".$db_table." (name,text) VALUES ('$name','$text')");
    
    if ($result == true){
    	echo "Информация занесена в базу данных";
    }else{
    	echo "Информация не занесена в базу данных";
    }
}



Модератор: Тема перенесена из форума "Проектирование БД".
...
Рейтинг: 0 / 0
07.02.2020, 14:02
    #39923932
SQLPowerUser
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись в базу данных mysql
malo13,

вот здесь action проверьте
Код: html
1.
<form method="POST" action="путь к php-скрипту правильный ? ">



посмотрите, что приходит на сервер:
Код: php
1.
2.
echo '<pre>';
print_r($_POST);


Команду на вставку попробуйте так:
Код: php
1.
$result = $mysqli->query("INSERT INTO $db_table (name,text) VALUES ($name,$text)");


И данные надо вставлять через параметры, а не напрямую. Грамотная защита от SQL-Injection

Модератор: Тема перенесена из форума "HTML, JavaScript, VBScript, CSS".
...
Рейтинг: 0 / 0
07.02.2020, 19:11
    #39924033
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись в базу данных mysql
Атрибут action вовсе не требуется, если форма отправляется на ту же страницу.

Если не ошибаюсь, text есть служебное слово в MySQL, обозначающее тип данных. Во всяком случае, обратные кавычки пока никто не отменял.

Для отладки текст запроса не следует пихать непосредственно в ->query(). Проще сохранить его в переменной и до исполнения запроса посмотреть его текст при помощи var_dump(). Часто ошибки видны уже на этом уровне.

После query() есть смысл прочитать сообщение об ошибке от СУБД.

Ну и пихать данные из POST напрямую или через переменные, как в Вашем примере, в SQL-запрос не есть гуд. Проблема далеко не только в инъекциях.
...
Рейтинг: 0 / 0
10.02.2020, 09:55
    #39924543
malo13
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись в базу данных mysql
Здравствуйте. У меня еще есть подозрение что не на тот хост отправляется запрос. Как это можно проверить?
...
Рейтинг: 0 / 0
10.02.2020, 11:57
    #39924606
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись в базу данных mysql
Например
Код: php
1.
SHOW VARIABLES LIKE 'hostname'
...
Рейтинг: 0 / 0
10.02.2020, 12:29
    #39924628
malo13
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись в базу данных mysql
mysql> SHOW VARIABLES LIKE 'hostname';
+---------------+-----------------+
| Variable_name | Value |
+---------------+-----------------+
| hostname | DESKTOP-2RAS8KF |
+---------------+-----------------+

Я так понял что хостнейм у меня "DESKTOP-2RAS8KF". Значит в $db_host = "localhost"; вместо "localhost" надо писать $db_host = "DESKTOP-2RAS8KF"?
...
Рейтинг: 0 / 0
10.02.2020, 13:45
    #39924668
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись в базу данных mysql
Нет, не значит.
При указании локалхоста подключение всегда к локальному хосту.
...
Рейтинг: 0 / 0
10.02.2020, 16:02
    #39924726
malo13
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись в базу данных mysql
Извините за тупой вопрос, но хочу уточнить. Мне нужно запускать какойнибудь сервер на локальной машине?
...
Рейтинг: 0 / 0
10.02.2020, 16:25
    #39924744
miltorg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись в базу данных mysql
malo13,

А что отвечает?

И я как то совсем не увидел <?php ?>
...
Рейтинг: 0 / 0
10.02.2020, 21:33
    #39924947
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись в базу данных mysql
malo13
Мне нужно запускать какойнибудь сервер на локальной машине?
Упс! Хоррроший вопрос! Ну... парочка, хотя бы, должна быть запущена - мускуль и вебсервер.

malo13
но никак не получается.
Давайте уж конкретику. Что именно не получается, что пробовали делать, какой ожидали результат и что по факту получили.
Приведите в оригинале все сообщения об ошибках - как MySQL, так и PHP.

miltorg
совсем не увидел <?php ?>
Кстати, да, проглядел...
...
Рейтинг: 0 / 0
15.02.2020, 12:32
    #39926995
malo13
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись в базу данных mysql
Какой вебсервер порекомендуете. Я как вы уже поняли наверно, впервые все это делаю. И делаю на одной машине.
...
Рейтинг: 0 / 0
15.02.2020, 13:38
    #39927003
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись в базу данных mysql
malo13
Какой вебсервер порекомендуете

apache

на винде можно поставить пакет XAMPP (со всем необходимым добром в комплекте)
...
Рейтинг: 0 / 0
17.02.2020, 14:58
    #39927513
malo13
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись в базу данных mysql
установил. но не запускается MySQL сервер.



3:55:51 PM [mysql] Attempting to start MySQL service...
3:56:19 PM [mysql] Problem detected!
3:56:19 PM [mysql] Port 3306 in use by "Unable to open process"!
3:56:19 PM [mysql] MySQL WILL NOT start without the configured ports free!
3:56:19 PM [mysql] You need to uninstall/disable/reconfigure the blocking application
3:56:19 PM [mysql] or reconfigure MySQL and the Control Panel to listen on a different port
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Запись в базу данных mysql / 13 сообщений из 13, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]