powered by simpleCommunicator - 2.0.40     © 2025 Programmizd 02
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Запись в базу данных mysql
13 сообщений из 13, страница 1 из 1
Запись в базу данных mysql
    #39923892
malo13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Можете помочь?
Хочу чтоб заполнялась база данных с помощью формы. но никак не получается.
Код: 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
Запись в базу данных mysql
    #39923932
SQLPowerUser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Запись в базу данных mysql
    #39924033
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Атрибут action вовсе не требуется, если форма отправляется на ту же страницу.

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

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

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

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

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

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

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

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

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

apache

на винде можно поставить пакет XAMPP (со всем необходимым добром в комплекте)
...
Рейтинг: 0 / 0
Запись в базу данных mysql
    #39927513
malo13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
установил. но не запускается 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
13 сообщений из 13, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Запись в базу данных mysql
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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