Я обновляю строку MySQL, используя следующий код. Может ли кто-нибудь сказать мне, как я могу проверить запрос на обновление и распечатать его только в том случае, если запрос на обновление был успешным без каких-либо ошибок? и печать не удалась, если запрос на обновление не был успешным!
<?php
//start the session
session_start();
// include db configuration
include('include/db_connect.php');
// user's information
$member_id = $_SESSION['id'];
$member_name = $_SESSION['name'];
$contact_id = $_GET['id'];
// $get_contact = "SELECT * FROM `contacts` where contacts_id = '$contact_id'";
$get_contact = mysqli_query($conn, "SELECT * FROM `contacts` where contacts_id = '$contact_id'");
$row = mysqli_fetch_array($get_contact);
if (isset($_POST['submit'])){
$contact_id = $_POST['contact_id'];
$fname = $_POST['fname'];
$lname = $_POST['lname'];
$cphone = $_POST['cphone'];
$city = $_POST['city'];
$update = "UPDATE `contacts` SET `first_name`='$fname',`last_name`='$lname',`cellphone_number`='$cphone',`city`='$city' WHERE contacts_id = ". $contact_id;
if (mysqli_query($conn, $update)) {
echo "
<script>
var msg = confirm('Contact Updated');
if (msg == true || msg == false){
location.href='update_contact.php?id=$contact_id';
}
</script>
";
} else {
echo "Error: " . $update . "<br>" . mysqli_error($conn);
}
}
?>
У меня такой вопрос: Я изо всех сил пытаюсь найти, в чем ошибка, и не мог, в чем именно. Это для моего выборного проекта.
"и" - это не одно и то же.
также каков вывод этого php? Ты нам не сказал.
Я просто ищу ошибку, просто зайдите в мою учетную запись github. (github.com/cassandramaureenabante/My-Phonebook)
Найти ошибки легко, если вы их попросите. См. Как получить информацию об ошибках MySQLi в разных средах и Как получать полезные сообщения об ошибках в PHP?.
Касси, пожалуйста, скопируйте и вставьте ошибку, которую вы получаете в браузере. Вы видите сообщения об ошибках?
if (msg == true || msg == false)? Зачем вообще нужен этот if-оператор (или даже confirm(), потому что вам наплевать на ответ)?
Обнаружено несколько проблем. 1. Результат запроса SELECT не используется (хотя вы, вероятно, используете его в другом месте); 2. SQL-инъекция может произойти в вашем операторе UPDATE; 3. Бессмысленно использовать функцию confirm() JS (вы имеете в виду alert()?); 4. Без вывода заголовка и тела HTML вы не должны просто повторять тег <script>; 5. Большинство обратных кавычек бесполезны.
Что еще более важно, вы должны четко определить, какой запрос завершился ошибкой. Если ваш оператор UPDATE обновляет нулевую запись, вы считаете это ошибкой? Вы должны проверить количество строк, затронутых через mysqli_affected_rows($conn).






use this function:
function alertBox($alert_msg, $redirect_link)
{
$alert = '<head><meta http-equiv = "Content-Type" content = "text/html; charset=utf-8" /></head>';
$alert .= '<script type = "text/javascript">alert("'.$alert_msg.'");';
if (!empty($redirect_link)):
$alert .='window.location = "'.$redirect_link.'";';
endif;
$alert .='</script>;';
return $alert;
}
// and for calling..
if ((mysqli_query($con,$sql))
{
echo alertBox("sucessfull","example.php");
}
Это вообще не связано с проблемой.
Прежде всего, пожалуйста, узнайте, как использовать запросы на основе процедур, чтобы обезопасить себя от SQL-инъекций (я здесь не для того, чтобы давать учебные пособия по процедурам и SQL-инъекциям, это просто предупреждение о вредоносном коде), а теперь и ваше решение для кода. Возникла проблема в том, как вы объединяли переменную со строкой в своем запросе. Я починил для вас эту часть.
если вы все еще получаете какую-либо ошибку, расскажите, какую ошибку вы получаете и что это за сообщение об ошибке.
<?php
//start the session
session_start();
// include db configuration
include('include/db_connect.php');
// user's information
$member_id = $_SESSION['id'];
$member_name = $_SESSION['name'];
$contact_id = $_GET['id'];
$get_contact = mysqli_query($conn, "SELECT * FROM `contacts` where contacts_id = '".$contact_id."'");
$row = mysqli_fetch_array($get_contact);
if (isset($_POST['submit'])){
$contact_id = $_POST['contact_id'];
$fname = $_POST['fname'];
$lname = $_POST['lname'];
$cphone = $_POST['cphone'];
$city = $_POST['city'];
$update = "UPDATE `contacts` SET `first_name`='".$fname."',`last_name`='".$lname."',`cellphone_number`='".$cphone."',`city`='".$city."' WHERE contacts_id = '".$contact_id."'";
if (mysqli_query($conn, $update)) {
echo "
<script>
var msg = confirm('Contact Updated');
if (msg == true || msg == false){
location.href='update_contact.php?id=$contact_id';
}
</script>
";
} else {
echo "Error: " . $update . "<br>" . mysqli_error($conn);
}
}
?>
сначала исправьте sql-инъекция.