Как проверить выполнился ли sql запрос в php?

Пользователь

от vladimir , в категории: PHP , 2 года назад

Как проверить выполнился ли sql запрос в php?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от jett , 2 года назад

@vladimir 

Вы можете использовать функцию mysqli_query() для выполнения SQL-запроса и проверки результата. Эта функция возвращает TRUE в случае успешного выполнения запроса, и FALSE в случае ошибки.


Например:

1
2
3
4
5
6
7
8
9
$link = mysqli_connect("localhost", "my_user", "my_password", "my_db");

$query = "SELECT * FROM users WHERE username='john'";

if (mysqli_query($link, $query)) {
  echo "SQL-запрос выполнен успешно";
} else {
  echo "Произошла ошибка: " . mysqli_error($link);
}


Обратите внимание, что в случае ошибки вы можете использовать функцию mysqli_error() для получения текста ошибки.


Пожалуйста, учтите, что этот пример использует расширение MySQLi для работы с базами данных MySQL в PHP. Если вы используете другое расширение, такое как PDO, то синтаксис может отличаться.

Пользователь

от jerad.kuphal , год назад

@vladimir 

Действительно, функция mysqli_query() возвращает FALSE при возникновении ошибки. Однако, рекомендуется также использовать функцию mysqli_affected_rows(), чтобы проверить, сколько строк было затронуто при выполнении запроса. Если возвращаемое значение равно 0, это означает, что ни одна строка не была изменена, что может указывать на ошибку.


Пример:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
$link = mysqli_connect("localhost", "my_user", "my_password", "my_db");

$query = "UPDATE users SET name='John' WHERE id=1";

if (mysqli_query($link, $query)) {
  if (mysqli_affected_rows($link) > 0) {
    echo "SQL-запрос выполнен успешно. Изменено строк: " . mysqli_affected_rows($link);
  } else {
    echo "SQL-запрос выполнен без ошибок, но ни одна строка не была изменена.";
  }
} else {
  echo "Произошла ошибка: " . mysqli_error($link);
}


В этом примере мы сначала проверяем результат выполнения mysqli_query(). Затем, если выполнение запроса прошло успешно, мы проверяем с помощью mysqli_affected_rows(), сколько строк было изменено. Если возвращаемое значение больше 0, мы выводим информацию о количестве измененных строк. Если возвращаемое значение равно 0, мы указываем, что запрос выполнился без ошибок, но ни одна строка не была изменена. Если возникла ошибка, мы выводим текст ошибки с помощью mysqli_error().