#php
#php
Вопрос:
Я создаю функцию, в которой пользователь не может требовать сегодняшнюю денежную транзакцию на своем счете. Но все равно можно просмотреть их сегодняшнюю транзакцию. Итак, я хотел создать сообщение, информирующее пользователя о том, что если пользователь хочет потребовать свою сегодняшнюю транзакцию, он не может этого сделать. Им придется вернуться завтра, если они захотят. Это то, что я пробовал, но это не работает, и оно не показывало сообщение. Я пытаюсь отобразить сообщение Comeback tomorrow!
$connection = mysqli_connect("lolo", "hahaha", "", "eh");
$ql = "UPDATE kola SET setatus ='upgrade' WHERE ID = 'opopo1' AND
DATE(date) !=CURRENT_DATE() ";
$ql_claim = mysqli_query($connection, $ql);
if (mysqli_affected_rows($ql_claim) > 0) {
echo "<script>alert('Successful!')</script>";
echo "<script>window.location = 'nextPage.php'</script>";
} else
echo "<script>alert('Comeback tomorrow!')</script>";
}
Я хотел отобразить Comeback tomorrow
предупреждение, но мое предупреждение не работает.
Комментарии:
1. Не
$ql_claim = mysqli_query($connection,$ql_claim);
должно быть$ql_claim = mysqli_query($connection,$ql);
?2. да, не беспокойтесь об этом, я забыл отредактировать код здесь, да, так и должно быть. но я все еще не получаю предупреждающее сообщение.
3. Попробуйте
var_dump(mysqli_affected_rows($ql_claim))
и посмотрите, что он на самом деле получает. Я предполагаю, что вы видитеSuccessful!
предупреждение?4. @waima, работает ли мой ответ или нет, пожалуйста, скажите мне
Ответ №1:
Я заметил, что {
в вашем коде после условия отсутствует фигурная скобка else
, поэтому я обновил ваш код.
$conn = new mysqli("lolo","hahaha","", "eh");
$status = "upgrade";
$id = "opopo1";
$ql_claim = $conn->prepare("UPDATE kola SET setatus = ? WHERE ID = ? AND DATE(date) != CURRENT_DATE()");
$ql_claim->bind_param("ss", $status, $id);
$ql_claim->execute();
if($ql_claim->affected_rows > 0 ) {
echo "<script>
alert('Successful!');
window.location = 'nextPage.php';
</script>";
}
else{
echo "<script>
alert('Comeback tomorrow!');
</script>";
}
Примечание: Пожалуйста, всегда используйте подготовленные инструкции при выборе, обновлении, вставке или удалении запроса в MySQL, чтобы избежать атаки SQL-инъекций.
Комментарии:
1. Также их скрипт не подвержен SQL-инъекции, поскольку в нем нет значений переменных. Однако вопрос в том, является ли это их реальным кодом или используются только статические идентификаторы / значения.
2. @Jonnix, но в этом случае есть дополнительная скобка, которая может привести к возникновению ошибки
3. Ах, я понимаю, что вы имеете в виду, это, вероятно, ошибка / дополнительный бит c p, но хороший улов.
4. это не работает. Он не показал мне предупреждение о
Comeback Tomorrow
5. @waima, я думаю, вы не получили ожидаемый результат только из-за
$mysqli->affected_rows
, попробуйте альтернативный способ или поделитесь с нами своей структурой таблицы, чтобы решить вашу проблему.