Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 29.03.2023
Сообщений: 33

Ошибка в подключении к базе данных mysql синтаксис php

29.03.2023, 11:28. Показов 708. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
PHP/HTML
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
<?php
/*** mysql hostname ***/
$hostname = 'localhost';
 
/*** mysql username ***/
$username = '';
 
/*** mysql password ***/
$password = '';
 
$dbname = '';
 
try {
    $dbh = new PDO("mysql:host=$hostname;dbname=$dbname", $username, $password);
 
($_POST['name'];) 
{
    $name       = $_POST['name'];
    $tel    = $_POST['tel'];
    $email    = $_POST['email'];
    $message    = $_POST['message'];
    /*** установите для всех ошибок значение exections ***/
    $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    
    $sql = "INSERT INTO contact (date_time, name, tel, email, message)
            VALUES (NOW(), :name, :tel, :email, :message)";
    /*** подготовьте заявление***/
    $stmt = $dbh->prepare($sql);
 
    /*** свяжите параметры ***/
    $stmt->bindParam(':name', $name, PDO::PARAM_STR);
     $stmt->bindParam(':tel', $tel, PDO::PARAM_STR);
     $stmt->bindParam(':email', $email, PDO::PARAM_STR);
    $stmt->bindParam(':message', $message, PDO::PARAM_STR);
 
    /*** запустите инструкцию sql ***/
    if ($stmt->execute()) {
        populate_contact();
    }
} 
}
catch(PDOException $e) {
    echo $e->getMessage();
}
 
if($_POST['refresh']) {
    populate_contact();
}
 
 
function populate_contact() {
    global $dbh;
    $sql = "select * from contact order by date_time desc limit 10";
    echo '<ul>';
    foreach ($dbh->query($sql) as $row) {
        echo '<li>';
        echo '<span class="date">'.date("d.m.Y H:i", strtotime($row['date_time'])).'</span>';
        echo '<span class="name">'.$row['name'].'</span>';
        echo '<span class="tel">'.$row['name'].'</span>';
        echo '<span class="email">'.$row['name'].'</span>';
        echo '<span class="message">'.$row['message'].'</span>';
        echo '</li>';
    }
    echo '</ul>';
}
?>
Html страница


PHP/HTML
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title><title>Создание доски отзывов на PHP, MySQL и jQuery</title>
 
<link rel="stylesheet" type="text/css" href="https://*.ru/contact/default.css" />
 
</head>
 
<body>
 
<div id="page">
 
    <div class="block rounded">
        <h1>заполните форму</h1>
    </div>
    
    <div class="block_main rounded">
        
        <h2> отзыв</h2><!--  -->
        <form method="post" action="https://*.ru/contact/contact.php">
            Ваше имя: <input type="text" id="name" name="name" />
            Ваш телефон: <input type="text" id="tel" name="tel" />
            Ваш email: <input type="text" id="email" name="email" />
            Сообщение: <input type="text" id="message" name="message" class="message" /><input type="submit" id="submit" value="Submit" />
        </form>
        
        <div id="contact">
            
        </div>
    </div>
</div>
 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript">
$(function() {
    refresh_contact();
    setInterval("refresh_contact()", 15000);
 
    $("#submit").click(function() {
        var name    = $("#name").val();
         var name    = $("#tel").val();
          var name    = $("#email").val();
        var message = $("#message").val();
        var data            = 'name='+ name +'&message='+ message;
 
        $.ajax({
            type: "POST",
            url: "https://*.html/contact/contact.php",
            data: data,
            success: function(html){
                $("#contact").slideToggle(500, function(){
                    $(this).html(html).slideToggle(500);
                    $("#message").val("");
                });
          }
        });    
        return false;
    });
});
 
function refresh_shoutbox() {
    var data = 'refresh=1';
    
    $.ajax({
            type: "POST",
            url: "https://*.ru/contact/contact.php",
            data: data,
            success: function(html){
                $("#shout").html(html);
            }
        });
}
 
 
</script>
</body>
</html>


Помогите пожалкйста.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
29.03.2023, 11:28
Ответы с готовыми решениями:

Ошибка PHP при подключении к базе данных MySQL
В OpenServer создаю БД (user:adm, password:adm, name:my_db). При подключении в PHP выдает ошибки: 1. Warning: mysqli_connect():...

Ошибка при подключении к базе данных MySQL
Здравствуйте! Я только начинаю учить java jdbc, но столкнулся с проблемой - я не могу подключиться к базе данных, выводит ошибку код:...

Запрос к базе данных (ошибка при подзапросе к fetch_accos() )., подправка кода вывода данных из бд MySQL c помощью PHP
&lt;? $conn = db_connect(); //$result = $conn-&gt;query(&quot;select * from user ORDER BY id DESC&quot;); $nsw = db_connect(); $wert_sql =...

13
Эксперт PHP
 Аватар для liris
4367 / 1008 / 153
Регистрация: 16.01.2023
Сообщений: 2,498
29.03.2023, 11:40
А сама ошибка где?
1
0 / 0 / 0
Регистрация: 29.03.2023
Сообщений: 33
29.03.2023, 11:43  [ТС]
Сначала выдавало, что токен не правильный при, заполнении формы регистрации, а затем страница не может обработать этот запрос.
0
Эксперт PHP
 Аватар для liris
4367 / 1008 / 153
Регистрация: 16.01.2023
Сообщений: 2,498
29.03.2023, 11:57
В 16 строке конструкция похожа на ошибку. Вероятно там if пропущен.
1
0 / 0 / 0
Регистрация: 29.03.2023
Сообщений: 33
29.03.2023, 12:05  [ТС]
Спасибо, буду смотреть, вы прпвы, я забыл написать, что в редакторе при прогоне в 16 строке выдает ошибку:


message:

Exited with error status 255

stdout:


Parse error: syntax error, unexpected ';' in /box/script.php on line 16

Добавлено через 2 минуты
If добпвил, все равно при прогоне пишет ошибку.
0
Эксперт PHP
 Аватар для liris
4367 / 1008 / 153
Регистрация: 16.01.2023
Сообщений: 2,498
29.03.2023, 12:08
Цитата Сообщение от Alex_mozharov Посмотреть сообщение
If добпвил, все равно при прогоне пишет ошибку.
Покажите, что вы добавили.
1
0 / 0 / 0
Регистрация: 29.03.2023
Сообщений: 33
29.03.2023, 12:13  [ТС]
PHP/HTML
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
<?php
/*** mysql hostname ***/
$hostname = '';
 
/*** mysql username ***/
$username = '';
 
/*** mysql password ***/
$password = '';
 
$dbname = '';
 
try {
    $dbh = new PDO("mysql:host=$hostname;dbname=$dbname", $username, $password);
 
if($_POST['name'];){
    $name       = $_POST['name'];
    $tel    = $_POST['tel'];
    $email    = $_POST['email'];
    $message    = $_POST['message'];
    /*** установите для всех ошибок значение exections ***/
    $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    
    $sql = "INSERT INTO contact (date_time, name, tel, email, message)
            VALUES (NOW(), :name, :tel, :email, :message)";
    /*** подготовьте заявление***/
    $stmt = $dbh->prepare($sql);
 
    /*** свяжите параметры ***/
    $stmt->bindParam(':name', $name, PDO::PARAM_STR);
     $stmt->bindParam(':tel', $tel, PDO::PARAM_STR);
     $stmt->bindParam(':email', $email, PDO::PARAM_STR);
    $stmt->bindParam(':message', $message, PDO::PARAM_STR);
 
    /*** запустите инструкцию sql ***/
    if ($stmt->execute()) {
        populate_contact();
    }
} 
}
catch(PDOException $e) {
    echo $e->getMessage();
}
 
if($_POST['refresh']) {
    populate_contact();
}
 
 
function populate_contact() {
    global $dbh;
    $sql = "select * from contact order by date_time desc limit 10";
    echo '<ul>';
    foreach ($dbh->query($sql) as $row) {
        echo '<li>';
        echo '<span class="date">'.date("d.m.Y H:i", strtotime($row['date_time'])).'</span>';
        echo '<span class="name">'.$row['name'].'</span>';
        echo '<span class="tel">'.$row['name'].'</span>';
        echo '<span class="email">'.$row['name'].'</span>';
        echo '<span class="message">'.$row['message'].'</span>';
        echo '</li>';
    }
    echo '</ul>';
}
?>



Создавался этот код на базе кода -отзыв, просто добавил в базу новую таблицу с дополни
Тельными формами tel email, тот код работает отлично, правда есть один баг при обн
Овлении страницы пишется повторно последний отзыв
0
Эксперт PHP
 Аватар для liris
4367 / 1008 / 153
Регистрация: 16.01.2023
Сообщений: 2,498
29.03.2023, 12:15
Не пренебрегайте, пожалуйста, кнопками "код".

У вас точка с запятой лишняя в условии:

PHP
1
if(!empty($_POST['name'])) {
1
0 / 0 / 0
Регистрация: 29.03.2023
Сообщений: 33
29.03.2023, 12:28  [ТС]
Случайно добавил, а сайт все равно не подключается к файлу php,
То есть вроде по прогону все ок, а на сайте открывается в адресе
Путь, но ошибка с текстом: сайт пока не может обработать
Этот запрос осталась

Добавлено через 1 минуту
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
CREATE TABLE IF NOT EXISTS `contact` (
 
`id` int(11) NOT NULL AUTO_INCREMENT,
 
`date_time` datetime NOT NULL,
 
`name` varchar(20) COLLATE utf8_unicode_ci NOT NULL,
 
`tel` varchar(20) COLLATE utf8_unicode_ci NOT NULL
 
`email` varchar(20) COLLATE utf8_unicode_ci NOT NULL
 
`message` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
 
PRIMARY KEY (`id`)
 
) ENGINE=MyISAM
 
 
Х

Это таблица в mysql по прогону все ок

Добавлено через 19 секунд
Извините, забыл код вставить

Добавлено через 5 минут
SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
CREATE TABLE IF NOT EXISTS `contact` (
 
`id` INT(11) NOT NULL AUTO_INCREMENT,
 
`date_time` datetime NOT NULL,
 
`name` VARCHAR(20) COLLATE utf8_unicode_ci NOT NULL,
 
`tel` VARCHAR(20) COLLATE utf8_unicode_ci NOT NULL
 
`email` VARCHAR(20) COLLATE utf8_unicode_ci NOT NULL
 
`message` VARCHAR(255) COLLATE utf8_unicode_ci NOT NULL,
 
PRIMARY KEY (`id`)
 
) ENGINE=MyISAM
0
Эксперт PHP
 Аватар для liris
4367 / 1008 / 153
Регистрация: 16.01.2023
Сообщений: 2,498
29.03.2023, 12:35
Лучший ответ Сообщение было отмечено Alex_mozharov как решение

Решение

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

Во-первых в начале файла подключите вывод ошибок.

PHP
1
2
ini_set('display_errors', 1);
error_reporting(E_ALL);
В случае ошибки 500 текст ошибки может все-равно не выводиться, тогда смотрите в error_log вашего веб-сервера.

Во-вторых чтобы было проще понять что именно не работает, если по тексту ошибки непонятно - закомментируйте (или удалите) весь код из скрипта и добавляйте небольшими блоками.
На каком блоке код перестанет работать, там и есть ваша ошибка.

Альтернативой этому способу является настройка XDebug, но он хорош только для локальной разработки.
1
0 / 0 / 0
Регистрация: 29.03.2023
Сообщений: 33
29.03.2023, 13:22  [ТС]
Сайт ругается
29.03.2023 13:05zakazzakazzakaz
Notice: Undefined index: message in /var/www/s241408/data/www/*.ru/contact/contact.php on line 65
29.03.2023 13:04zakazzakazzakaz
Notice: Undefined index: message in /var/www/s241408/data/www/*.ru/contact/contact.php on line 65

Конечно попробую поэтапно вставлять код, но все же. Вот что я изменил:
В строчке 48 убрал временно, как ругался редактор
PHP
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
<?php
 
ini_set('display_errors', 1); error_reporting(E_ALL);
 
/*** mysql hostname ***/
$hostname = 'localhost';
 
/*** mysql username ***/
$username = '';
 
/*** mysql password ***/
$password = '';
 
$dbname = '';
 
try {
    $dbh = new PDO("mysql:host=$hostname;dbname=$dbname", $username, $password);
 
if($_POST['name']){
    $name       = $_POST['name'];
    $tel    = $_POST['tel'];
    $email    = $_POST['email'];
    $message    = $_POST['message'];
    /*** установите для всех ошибок значение exections ***/
    $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    
    $sql = "INSERT INTO contact (date_time, name, tel, email, message)
            VALUES (NOW(), :name, :tel, :email, :message)";
    /*** подготовьте заявление***/
    $stmt = $dbh->prepare($sql);
 
    /*** свяжите параметры ***/
    $stmt->bindParam(':name', $name, PDO::PARAM_STR);
     $stmt->bindParam(':tel', $tel, PDO::PARAM_STR);
     $stmt->bindParam(':email', $email, PDO::PARAM_STR);
    $stmt->bindParam(':message', $message, PDO::PARAM_STR);
 
    /*** запустите инструкцию sql ***/
    if ($stmt->execute()) {
        populate_contact();
    }
} 
}
catch(PDOException $e) {
    echo $e->getMessage();
}
 
    /*** убрали
    if($_POST['refresh']) {
    populate_contact();}
    ***/
 
 
 
function populate_contact() {
    global $dbh;
    $sql = "select * from contact order by date_time desc limit 10";
    echo '<ul>';
    foreach ($dbh->query($sql) as $row) {
        echo '<li>';
        echo '<span class="date">'.date("d.m.Y H:i", strtotime($row['date_time'])).'</span>';
        echo '<span class="name">'.$row['name'].'</span>';
        echo '<span class="tel">'.$row['name'].'</span>';
        echo '<span class="email">'.$row['name'].'</span>';
        echo '<span class="message">'.$row['message'].'</span>';
        echo '</li>';
    }
    echo '</ul>';
}
?>
Добавлено через 4 минуты
И данные в таблице phpadmin не добавляются
0
Эксперт PHP
 Аватар для liris
4367 / 1008 / 153
Регистрация: 16.01.2023
Сообщений: 2,498
29.03.2023, 13:31
Цитата Сообщение от Alex_mozharov Посмотреть сообщение
Сайт ругается
Покажите, что у вас приходит из формы? Сайт говорит, что вы не присылаете message. А значения по умолчанию у вас не предусмотрены. Ровно как нет и проверки на то, что значение заполнено.

По-хорошему нужна валидация, если поле обязательное:

PHP
1
if(!empty($_POST['name'])) && !empty($_POST['message'])) && ...){
Ну или хотя бы добавить значения по умолчанию (у вас в базе стоит NOT NULL для всех полей, следовательно пустыми вы оставить их не имеет права):

PHP
1
2
3
4
$name       = $_POST['name'] ?? 'Аноним';
$tel    = $_POST['tel'] ?? 'Не указан';
$email    = $_POST['email'] ?? 'Не указан';
$message    = $_POST['message'] ?? 'Нет сообщения';
1
0 / 0 / 0
Регистрация: 29.03.2023
Сообщений: 33
29.03.2023, 13:42  [ТС]
Кажется, получилось, результат, меня устраивает, помог
Ваш код в начале, генератор ошибок.
Я новенький, подкажите пожалуйста как закрыть тему. Спасибо огромное.

Добавлено через 9 минут
Есть правда две нерешенные задачи на странице обратной связи и странице отзывов:
1. На странице отзывов при обновлении дублируется последний отзыв и как бы при заходе на страницу
Отзывы не видны, думаю сделать запрос из таблице mysql при загрузке страницы;
2. По последнему вопросу: при обновлении страницы последний пользователь
Дублирует свои данные на mysql - таблице и подменяет данные
Предыдущего пользователя.

Вот такие проблемы.
0
Эксперт PHP
 Аватар для liris
4367 / 1008 / 153
Регистрация: 16.01.2023
Сообщений: 2,498
29.03.2023, 13:47
Цитата Сообщение от Alex_mozharov Посмотреть сообщение
две нерешенные задачи
Если вам будет нужна помощь - на каждую задачу создаёте новую тему, где не торопясь, максимально подробно, указывая максимум деталей, описываете свою проблему.

Очень способствует решению, если вы:
- прилагаете тексты ошибки
- прилагаете код, который, по вашему мнению, работает неправильно
- максимально подробно описываете, что вами уже сделано для решения проблемы
- действительный результат
- ожидаемый результат
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.03.2023, 13:47
Помогаю со студенческими работами здесь

Ошибка при подключении к базе mysql
Доброго пятничного вечера ) пытаюсь выгрузить данные таблицы c MySQL в Excel 2016 (x64) столкнулся с такой проблемкой: все вроде...

Ошибки при подключении к базе данных MySQL
ОШИБКА Warning: mysql_connect() : Unknown MySQL server host 'hostingerru' (-2) in...

Доступ к базе данных на базе хранимых процедур MySQL из php
Добрый день возник вопрос по доступ к базе данных на базе хранимых процедур MySQL из php Из файла php подключаюсь к бд вот так ...

Ошибка при подключении к базе данных
Вылетает вот такое чудо -&gt; &quot;a database with the same name exist or specified file cannot be open or it is located in UNC share&quot; ...

Ошибка при подключении к базе данных
При запуске сайта выкидывает ошибку : Fatal error: Class name must be a valid object or a string in...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru