Просто голова. Я пишу PHP сейчас около 3 дней. У меня возникли проблемы с запросом. Когда я запускаю запрос в инструменте запроса, он находит именно то, что я ищу. Я пробовал все варианты синтаксиса, о которых я могу думать, используя LIKE (как это сейчас) и = и я не могу заставить его работать. Я уверен, что есть простой способ сделать остальную часть кода, но моя главная проблема сейчас - это запрос. Спасибо за помощь.WebMatrix PHP Query Не работает
$Incident_D = $_POST['Incident_D'];
$Incident_D = strtotime($Incident_D);
$Incident_T = $_POST['Incident_T'];
$Incident_T = strtotime($Incident_T);
$Incident_T = ($Incident_T % 86400);
$Incident_DT = $Incident_D + $Incident_T;
$sql = "SELECT dept.Department From department dept inner join near_miss NM on dept.Dept_Index = NM.Dept_Index Where NM.Incident_DT LIKE '%" . $Incident_DT . "%'";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
// output data of each row
while($row = mysqli_fetch_assoc($result)) {
$result1 = $row['Department'];
}
} else {
$result1 = "No Response";
}
$result = $result1;
Если я вручную ввожу значение для $ Incident_DT, оно может его найти. Вот почему я думаю, что проблема заключается в том, как значение хранится в $ Incident_DT. также когда я повторяю значение переменной и вставляю ее в инструмент запроса, который он работает.
** ПРЕДУПРЕЖДЕНИЕ ** При использовании 'mysqli' вы должны использовать параметризованные запросы и ['bind_param'] (http://php.net/manual/en/mysqli-stmt.bind-param.php), чтобы добавить данные пользователя в ваш запрос. ** НЕ используйте ** интерполирование строк, чтобы выполнить это, потому что вы создадите серьезные [SQL-инъекции ошибок] (http://bobby-tables.com/). ** НИКОГДА ** не вводите данные '$ _POST' непосредственно в запрос. – tadman
Какой тип данных является вашим столбцом 'Incident_DT'? вы всегда должны использовать типы даты и времени для этих данных, см. https://dev.mysql.com/doc/refman/5.0/en/datetime.html – andrew
Incident_DT - целое число –