Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.05.2018, 16:21   #1
Andrey0072
Пользователь
 
Регистрация: 12.03.2017
Сообщений: 29
По умолчанию Ошибка Uncaught exception 'mysqli_sql_exception' with message 'You have an error in your SQL syntax; check the manual th

как исправить ошибку "Uncaught exception 'mysqli_sql_exception' with message 'You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1' in W:\domains\test.ua\panel.php:72 Stack trace: #0 W:\domains\test.ua\panel.php(72): mysqli_query(Object(mysqli), 'SELECT * FROM B...') #1 {main} thrown in W:\domains\test.ua\panel.php on line 72" ?
код:<?php
$host = "127.0.0.1";
$user = "root";
$password ="";
$database = "Timetable";

$id = "";
$idbus = "";
$idtypetransport = "";
$pyt = "";
$vremia = "";
$rasstoianie = "";
$vr = "";
$rd ="";
$gorod =" ";
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
try{
$connect = mysqli_connect($host, $user, $password, $database);
} catch (mysqli_sql_exception $ex) {
echo 'Error';
}


function getPosts()
{
$posts = array();
$posts[0] = $_POST['id'];
$posts[1] = $_POST['id_bus'];
$posts[2] = $_POST['id_typetransport'];
$posts[3] = $_POST['Pyt'];
$posts[4] = $_POST['Vremia'];
$posts[5] = $_POST['Rasstoianie'];
$posts[6] = $_POST['Vremia raboti'];
$posts[7] = $_POST['Rabochie dni'];
$posts[8] = $_POST['Gorod'];
return $posts;
}
if(isset($_POST['search']))
{
$data = getPosts();

$search_Result = mysqli_query($connect, "SELECT * FROM Bus WHERE id = $data[0]") or die (mysqli_error());

if($search_Result)
{
if(mysqli_num_rows($search_Result))
{
while($row = mysqli_fetch_array($search_Result))
{
$id = $row['id'];
$idbus = $row['id_bus'];
$idtypetransport = $row['id_typetransport'];
$pyt = $row['Pyt'];
$vremia = $row['Vremia'];
$rasstoianie = $row['Rasstoianie'];
$vr = $row['Vremia raboti'];
$rd = $row['Rabochie dni'];
$gorod = $row['Gorod'];
}
}else{
echo 'No Data For This Id';
}
}else{
echo 'Result Error';
}
}
?>
Andrey0072 вне форума Ответить с цитированием
Старый 25.05.2018, 16:24   #2
Stanislav
Квадрокоптерист
Участник клуба Подтвердите свой е-майл
 
Регистрация: 29.09.2007
Сообщений: 1,824
По умолчанию

Тег код добавьте пожалуйста, читать не возможно, 29 сообщений а до сих пор не знаете об этом.

ну так посмотрите что у вас происходит.

Код:
$data = getPosts();
print_r($data);
если там пусто или еще какая ерунда в виде строки, то будет ошибка. а вообще хорошо проверять прежде чем в запрос вставлять переменные, проверили хотя бы на int
Я часть той силы, что вечно хочет зла, но вечно совершает благо..

Последний раз редактировалось Stanislav; 25.05.2018 в 16:27.
Stanislav вне форума Ответить с цитированием
Старый 25.05.2018, 16:26   #3
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,150
По умолчанию

1. Научится для начала размещать нормально посты - с оформлением кода в спец теги
2. Научится понимать по английски, или хотя-бы пользоваться переводчиками
3. попытаться вникнуть в азы php, в частности - работа со строками
и тогда поймете что у вас запрос формируется криво
нужно так
Код:
"SELECT * FROM Bus WHERE id = {$data[0]}"
ADSoft на форуме Ответить с цитированием
Старый 25.05.2018, 16:29   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Код:
SELECT * FROM Bus WHERE id = $data[0]
И что вы хотите от этого запроса? Думали переменная подставится? Неа. Используйте http://php.net/manual/en/mysqli.quic...statements.php и читайте доки по тому, что используете.
p51x вне форума Ответить с цитированием
Старый 25.05.2018, 16:30   #5
Stanislav
Квадрокоптерист
Участник клуба Подтвердите свой е-майл
 
Регистрация: 29.09.2007
Сообщений: 1,824
По умолчанию

ADSoft о чем Вы просите это не выполнимо, я не понимаю как так происходит, ковыряешься в коде, ну хорошо возникла ошибка но видно же что с мускулем связана, ну сделай ты банальный print_r...


p51x почему не будет?

Код:
$data[] = '1';
$data[] = '2';
$sql = "SELECT * FROM TABLE $data[0]";
echo $sql;
вот результат. но делать так конечно, это не комильфо
Код:
SELECT * FROM TABLE 1
Так что как и в первом ответе полагаю что там у него пусто или дичь какая, но явно не число


p.s p51x если обрамить в двойные кавычки php "будет искать" внутри переменную, а вот если взять конструкцию в одинарные то не будет

т.е если сделать так

Код:
$data[] = '1';
$data[] = '2';
$sql = 'SELECT * FROM TABLE $data[0]';
echo $sql;
то ответом будет

Код:
SELECT * FROM TABLE $data[1]
http://php.net/manual/ru/language.ty....syntax.double
Цитата:
Но самым важным свойством строк в двойных кавычках является обработка переменных.
Я проверил это работает
Код:
$search_Result = mysqli_query($connect, "SELECT * FROM cron_job WHERE cron_id = $data[0]") or die (mysqli_error());
ответ
Код:
mysqli_result Object
(
    [current_field] => 0
    [field_count] => 10
    [lengths] => 
    [num_rows] => 0
    [type] => 0
)
Я часть той силы, что вечно хочет зла, но вечно совершает благо..

Последний раз редактировалось Stanislav; 25.05.2018 в 16:46.
Stanislav вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-3, 3' at line 1 kuzmich PHP 5 19.02.2017 20:55
Ошибка You have an error in your SQL syntax monu91 PHP 4 01.06.2013 23:26
ошыбка Project vk_id.exe raised exception class eoserror with message System error Pein95 Общие вопросы Delphi 6 17.06.2011 20:38
Exception class EInOutError with message 'I/O error 6' Sparky Общие вопросы Delphi 11 17.12.2010 17:23
raised exception class EIdSocketError with message' Socket Error # 10022 Invalid argument eldar Работа с сетью в Delphi 16 08.08.2008 23:49