Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
5 / 2 / 3
Регистрация: 23.09.2018
Сообщений: 54
MySQL

Как понять из-за чего происходит ошибка при выполнении php - mysql

19.01.2020, 09:41. Показов 1903. Ответов 15

Студворк — интернет-сервис помощи студентам
Здравствуйте, я создаю php скрипт, который должен добавлять статистику в базу данных. У меня получилось сделать это для браузера, т.е. в браузере скрипт работает, но создавался он для работы с lua скриптом.
lua отправляет через http запрос статистику php скрипту
php скрипт вносит статистику в БД и всё.
Мне удалось разобраться с отправлением статистики в php, но во время выполнения скрипта
PHP
1
2
$str_sql_query = "INSERT INTO tables (first, second, third) VALUES ('".$first."','".$second."','".$third."')";
if (!$mysqli->query($str_sql_query)){echo $str_sql_query;}else{echo "Всё прошло удачно";}
возвращается false. Нашел на одном сайте рекомендацию выводить запрос а потом попробовать сделать это в ручную в phpmyadmin и так я и сделал. Тот же самый запрос у меня получился, ошибки не было. Ума не приложу в чём дело.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
19.01.2020, 09:41
Ответы с готовыми решениями:

Ошибка памяти при выполнении - не могу понять в чём дело
Добрый день. Есть следующий код: #include <iostream> using namespace std; class Matrix { private: int* arr_ptr; ...

Не могу понять из-за чего это происходит
Здраствуйте. Вот часть программы: #include <fstream> using namespace std; int main() { ifstream x("input.txt"); ...

Ошибка при выполнении из php
Такая проблема, есть скрипт Примерно вот такого содержания require 'rubygems' require 'market_bot' puts...

15
 Аватар для esculap_ra
462 / 265 / 55
Регистрация: 22.08.2010
Сообщений: 1,204
Записей в блоге: 4
19.01.2020, 12:36
Попробуй экранировать именя БД и таблиц, типа `name`
0
5 / 2 / 3
Регистрация: 23.09.2018
Сообщений: 54
19.01.2020, 12:38  [ТС]
Я всё-таки получил код ошибки, 1366. Не получается её исправить
0
1152 / 554 / 320
Регистрация: 21.06.2012
Сообщений: 1,854
19.01.2020, 13:03
Wintreist, мало информации. Полный текст ошибки выложите. Данные пришедшие в скрипт как-то фильтруются? Возможно лишние символы туда попадают. Соединение с базой есть? И т.д. и т.п.
0
5 / 2 / 3
Регистрация: 23.09.2018
Сообщений: 54
19.01.2020, 13:10  [ТС]
Сейчас всё покажу
Это запрос к php скрипту от lua
https://mysite.com/drop.php?ve... E%E4%EE%E2

php код
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<html>
<title> DropDialogAir </title>
<body>
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
$text = $_REQUEST['text'];
$version = $_REQUEST['version'];
$name = $_REQUEST['name'];
if ($text == "" or $version == "" or $name == ""){echo "Не введены все параметры"; exit();}
$mysqli = new mysqli('localhost', 'mylogin', 'mypass', 'BD');
if (!$mysqli){exit();}
$str_sql_query = "INSERT INTO DropText (Name_Who, Version, Text) VALUES ('".$name."','".$version."','".$text."')";
if (!$mysqli->query($str_sql_query)){echo $mysqli->errno;}else{echo "Всё прошло удачно";}
$mysqli->close();
?>
</body>
</html>
Скрипт возвращает 1366
0
1152 / 554 / 320
Регистрация: 21.06.2012
Сообщений: 1,854
19.01.2020, 14:51
Wintreist, ну так посмотрите что вы пытаетесь запихать в БД: EA%EE%E4%EE%E2 естественно она сопротивляется. Посмотрите что находится в переменных:

PHP
1
2
3
4
$text = $_REQUEST['text'];
$version = $_REQUEST['version'];
$name = $_REQUEST['name'];
echo $text.'<br>'.$version.'<br>'.$name.'<br>';
Обрабатывайте ссылку функцией urldecode

И зачем используете _REQUEST а не _GET?
0
5 / 2 / 3
Регистрация: 23.09.2018
Сообщений: 54
19.01.2020, 15:35  [ТС]
sasha0012, сначала использовал $_GET, потом посоветовали $_REQUEST. Сейчас попробую сделать то, что вы посоветовали.

Добавлено через 41 минуту
sasha0012, лучше не стало, возвращает
INSERT INTO DropText (Name_Who, Version, Text) VALUES ('Jon','18.01.2020.20:40','{B03131}[1]{FFFFFF} �������� ��������� {B03131}[2]{FFFFFF} ������ ��������� {B03131}[3]{FFFFFF} ����� � �������������� {B03131}[4]{FFFFFF} ������ �� ������� {B03131}[5]{FFFFFF} ��������� ��������� {B03131}[6]{FFFFFF} ����� {B03131}[7]{FFFFFF} ������� {B03131}[8]{FFFFFF} ������� ������� {B03131}[9]{FFFFFF} ������� ����� {B03131}[10]{FFFFFF} ������� ��������� {B03131}[11]{FFFFFF} ������� ������ ������ {B03131}[12]{FFFFFF} �����-���: {D2772C}#Maras{FFFFFF} {B03131}[13]{FFFFFF} ������� �����-�����')
1366 - код ошибки
0
1152 / 554 / 320
Регистрация: 21.06.2012
Сообщений: 1,854
19.01.2020, 18:13
Цитата Сообщение от Wintreist Посмотреть сообщение
лучше не стало,
а с чего оно должно стать лучше? Вы как-то изменили свой код? Как вам здесь могут помочь если вы не предоставляете всю информацию?

Первое:
Цитата Сообщение от sasha0012 Посмотреть сообщение
Посмотрите что находится в переменных:
где вывод на экране?

Второе:
файл скрипта как и БД должны быть в кодировке utf8. Принудительно можно указать кодировку при соединении с БД:
PHP
1
2
$mysqli = new mysqli('localhost', 'mylogin', 'mypass', 'BD');
$mysqli->set_charset("utf8");
1
5 / 2 / 3
Регистрация: 23.09.2018
Сообщений: 54
19.01.2020, 18:30  [ТС]
Цитата Сообщение от sasha0012 Посмотреть сообщение
где вывод на экране?
Цитата Сообщение от Wintreist Посмотреть сообщение
INSERT INTO DropText (Name_Who, Version, Text) VALUES ('Jon','18.01.2020.20:40','{B03131}[1]{FFFFFF} �������� ��������� {B03131}[2]{FFFFFF} ������ ��������� {B03131}[3]{FFFFFF} ����� � �������������� {B03131}[4]{FFFFFF} ������ �� ������� {B03131}[5]{FFFFFF} ��������� ��������� {B03131}[6]{FFFFFF} ����� {B03131}[7]{FFFFFF} ������� {B03131}[8]{FFFFFF} ������� ������� {B03131}[9]{FFFFFF} ������� ����� {B03131}[10]{FFFFFF} ������� ��������� {B03131}[11]{FFFFFF} ������� ������ ������ {B03131}[12]{FFFFFF} �����-���: {D2772C}#Maras{FFFFFF} {B03131}[13]{FFFFFF} ������� �����-�����')
Цитата Сообщение от Wintreist Посмотреть сообщение
'Jon'
Цитата Сообщение от Wintreist Посмотреть сообщение
'18.01.2020.20:40'
Цитата Сообщение от Wintreist Посмотреть сообщение
'{B03131}[1]{FFFFFF} �������� ��������� {B03131}[2]{FFFFFF} ������ ��������� {B03131}[3]{FFFFFF} ����� � �������������� {B03131}[4]{FFFFFF} ������ �� ������� {B03131}[5]{FFFFFF} ��������� ��������� {B03131}[6]{FFFFFF} ����� {B03131}[7]{FFFFFF} ������� {B03131}[8]{FFFFFF} ������� ������� {B03131}[9]{FFFFFF} ������� ����� {B03131}[10]{FFFFFF} ������� ��������� {B03131}[11]{FFFFFF} ������� ������ ������ {B03131}[12]{FFFFFF} �����-���: {D2772C}#Maras{FFFFFF} {B03131}[13]{FFFFFF} ������� �����-�����'
Цитата Сообщение от Wintreist Посмотреть сообщение
$str_sql_query = "INSERT INTO DropText (Name_Who, Version, Text) VALUES ('".$name."','".$version."','".$text."') ";
Попробую поставить принудительную кодировку...
0
1152 / 554 / 320
Регистрация: 21.06.2012
Сообщений: 1,854
19.01.2020, 20:49
Wintreist, эти данные вы сами отправляете или получаете их от кого-то? Попробуйте конвертировать в utf8, например так:
PHP
1
2
$text = $_REQUEST['text'];
$text = mb_convert_encoding($text, 'utf-8', mb_detect_encoding($text));
0
5 / 2 / 3
Регистрация: 23.09.2018
Сообщений: 54
19.01.2020, 20:54  [ТС]
sasha0012, сейчас я отправляю их сам себе, для того чтобы отладить скрипт для того, чтобы получать данные от моего скрипта (lua), но от других компьютеров и соответственно людей.
Возвращает:
INSERT INTO DropText (Name_Who, Version, Text) VALUES ('Jon','18.01.2020.20:40','{B03131}[1]{FFFFFF} ???????? ????????? {B03131}[2]{FFFFFF} ?????? ????????? {B03131}[3]{FFFFFF} ????? ? ?????????????? {B03131}[4]{FFFFFF} ?????? ?? ??????? {B03131}[5]{FFFFFF} ????????? ????????? {B03131}[6]{FFFFFF} ????? {B03131}[7]{FFFFFF} ??????? {B03131}[8]{FFFFFF} ??????? ??????? {B03131}[9]{FFFFFF} ??????? ????? {B03131}[10]{FFFFFF} ??????? ????????? {B03131}[11]{FFFFFF} ??????? ?????? ?????? {B03131}[12]{FFFFFF} ?????-???: {D2772C}#Maras{FFFFFF} {B03131}[13]{FFFFFF} ??????? ?????-?????')Всё прошло удачно
Он теперь конечно добавляет, только символы теперь вопросики
0
1152 / 554 / 320
Регистрация: 21.06.2012
Сообщений: 1,854
19.01.2020, 21:07
Цитата Сообщение от Wintreist Посмотреть сообщение
сейчас я отправляю их сам себе
ну так и замечательно. Теперь осталось только перекодировать все файлы в utf8, а если у сервера по умолчанию другая кодировка, то ставим тоже utf8. Можно непосредственно в файле прописать:
PHP
1
header('Content-Type: text/html; charset=utf-8');
или в htaccess:
Code
1
2
php_value default_charset utf-8
AddDefaultCharset UTF-8
и все станет на свои места.
1
5 / 2 / 3
Регистрация: 23.09.2018
Сообщений: 54
19.01.2020, 21:29  [ТС]
Файл .htaccess до вашего сообщения:
PHP
1
2
3
4
# HTID:12396083: DO NOT REMOVE OR MODIFY THIS LINE AND THE LINES BELOW
php_value display_errors 1
AddDefaultCharset utf8
# DO NOT REMOVE OR MODIFY THIS LINE AND THE LINES ABOVE HTID:12396083:
Вот параметры базы данных, если я правильно понял о чём Вы:

Цитата Сообщение от sasha0012 Посмотреть сообщение
Можно непосредственно в файле прописать
Не совсем понял что это будет, и куда вставлять...

Добавлено через 12 минут
Хм... Сайт удалил ссылку на картинки, попробую залить так
0
5 / 2 / 3
Регистрация: 23.09.2018
Сообщений: 54
19.01.2020, 21:31  [ТС]
Вот
Миниатюры
Как понять из-за чего происходит ошибка при выполнении php - mysql   Как понять из-за чего происходит ошибка при выполнении php - mysql   Как понять из-за чего происходит ошибка при выполнении php - mysql  

Как понять из-за чего происходит ошибка при выполнении php - mysql  
0
1152 / 554 / 320
Регистрация: 21.06.2012
Сообщений: 1,854
19.01.2020, 21:55
Лучший ответ Сообщение было отмечено Wintreist как решение

Решение

ну БД здесь пока что не причем. Видимо вы не сделали всё то о чём я написал выше. Сами файлы в которых скрипты написаны тоже в utf8? Видимо нет, ибо если конвертировать из windows-1251 в UTF-8, то всё работает нормально:

PHP
1
2
3
4
$text = '%7BB03131%7D%5B1%5D%7BFFFFFF%7D%20%C4%E5%E9%F1%F2%E2%E8%FF%20%EF%E5%F0%F1%EE%ED%E0%E6%E0%0A%7BB03131%7D%5B2%5D%7BFFFFFF%7D%20%CD%E0%E2%FB%EA%E8%20%EF%E5%F0%F1%EE%ED%E0%E6%E0%0A%7BB03131%7D%5B3%5D%7BFFFFFF%7D%20%D1%E2%FF%E7%FC%20%F1%20%E0%E4%EC%E8%ED%E8%F1%F2%F0%E0%F6%E8%E5%E9%0A%7BB03131%7D%5B4%5D%7BFFFFFF%7D%20%CF%EE%EC%EE%F9%FC%20%EF%EE%20%F1%E5%F0%E2%E5%F0%F3%0A%7BB03131%7D%5B5%5D%7BFFFFFF%7D%20%CD%E0%F1%F2%F0%EE%E9%EA%E8%20%EF%E5%F0%F1%EE%ED%E0%E6%E0%0A%7BB03131%7D%5B6%5D%7BFFFFFF%7D%20%C4%EE%ED%E0%F2%0A%7BB03131%7D%5B7%5D%7BFFFFFF%7D%20%D2%E5%EB%E5%F4%EE%ED%0A%7BB03131%7D%5B8%5D%7BFFFFFF%7D%20%CE%F2%EA%F0%FB%F2%FC%20%F0%F3%EB%E5%F2%EA%F3%0A%7BB03131%7D%5B9%5D%7BFFFFFF%7D%20%C8%F1%F2%EE%F0%E8%FF%20%ED%E8%EA%EE%E2%0A%7BB03131%7D%5B10%5D%7BFFFFFF%7D%20%C8%F1%F2%EE%F0%E8%FF%20%ED%E0%EA%E0%E7%E0%ED%E8%E9%0A%7BB03131%7D%5B11%5D%7BFFFFFF%7D%20%CF%F0%E5%EC%E8%F3%EC%20%E8%E3%F0%EE%EA%E8%20%EE%ED%EB%E0%E9%ED%0A%7BB03131%7D%5B12%5D%7BFFFFFF%7D%20%CF%F0%EE%EC%EE%2D%EA%EE%E4%3A%20%7BD2772C%7D%23Maras%7BFFFFFF%7D%0A%7BB03131%7D%5B13%5D%7BFFFFFF%7D%20%D1%E8%F1%F2%E5%EC%E0%20%EF%F0%EE%EC%EE%2D%EA%EE%E4%EE%E2';
$text = urldecode($text);
$text = iconv('windows-1251','UTF-8', $text);
echo $text;
Code
1
{B03131}[1]{FFFFFF} Действия персонажа {B03131}[2]{FFFFFF} Навыки персонажа {B03131}[3]{FFFFFF} Связь с администрацией {B03131}[4]{FFFFFF} Помощь по серверу {B03131}[5]{FFFFFF} Настройки персонажа {B03131}[6]{FFFFFF} Донат {B03131}[7]{FFFFFF} Телефон {B03131}[8]{FFFFFF} Открыть рулетку {B03131}[9]{FFFFFF} История ников {B03131}[10]{FFFFFF} История наказаний {B03131}[11]{FFFFFF} Премиум игроки онлайн {B03131}[12]{FFFFFF} Промо-код: {D2772C}#Maras{FFFFFF} {B03131}[13]{FFFFFF} Система промо-кодов
1
5 / 2 / 3
Регистрация: 23.09.2018
Сообщений: 54
19.01.2020, 22:09  [ТС]
sasha0012, lua скрипт имеет кодировку CP-1251, потому что он написан для игры, поддерживающей только такую кодировку. А вот ваш приложеный код я сейчас попробую, потому что у меня снова появилась надежда

Добавлено через 10 минут
sasha0012, ВЫ, ПРОСТО, БОГ. Вы сделали то, что никто на 2-х платформах не смог сделать, вы великолепны! У меня наконец работает! Я даже проверил через lua, всё идеально!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.01.2020, 22:09
Помогаю со студенческими работами здесь

При выполнении Python-скрипта происходит ошибка "The NTVDM CPU has encountered an illegal"
Всем привет!!! Ребят раньше скрипт запускаемый битником - d:\Mail\Python\python.exe d:\Mail\Semail.py работал на 2003 сервере,...

Ошибка при выполнении запроса который генерировал PHP
Всем привет. Я еще новичок в PHP. Если ошибаюсь или говорю чтото нето извиняюсь. написал функции которые сами генерируют запрос для...

Ошибка при выполнении запроса к mysql (terminate called after throwing an instance of 'sql::SQLException')
Всем привет. Пишу программу - демон, выполняющую изменения в базе данных в случае появления определённых флагов. Использую MYSQL...

Ошибка ArgumentNullExeption, как понять чего не хватает
При использовании метода выскакивает ошибка &quot;ArgumentNullExeption не обработано. Значение не может быть неопределенным, значение параметра...

Студент. Хочу понять что такое ассемблер, как на нем писать, как его понять и с чего начать
Ребят, хочу понять ассемблер. Проблема в том, что я студент, пары микропроцессоров уже прошли, но я так и не понял как писать на нем. Хочу...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
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