Как проверить, существует ли строка в базе данных?Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Как проверить, существует ли строка в базе данных?

Сообщение Anonymous »

У меня есть таблица user_bio. Я вручную ввел одну строку для имени пользователя conor:

Код: Выделить всё

id: 1
age: 30
studying: Business
language: English
relationship_status: Single
username: conor
about_me: This is conor's bio.
Биография уникальна для пользователя, и, очевидно, пользователь не может вручную настроить свою биографию, вставив ее в базу данных. Рассмотрим следующий сценарий:
  • Вход в систему как Конор. Поскольку у Конора уже есть строка в базе данных, я просто хочу запустить запрос UPDATE, чтобы обновить поле, в котором имя пользователя равно conor.
  • Войти как Алиса
  • Войти как Алиса код>. Так как у Алисы нет в базе данных строки, соответствующей ее имени пользователя. Затем я хочу запустить запрос INSERT. Для всех пользователей все пользователи должны будут ввести свои данные, а затем соответствующим образом обновить их.
В настоящий момент я пытаюсь вставить данные в базе данных, когда в базе данных нет строк.
Вот мой текущий подход:

Код: Выделить всё

$about_me = htmlentities(trim(strip_tags(@$_POST['biotextarea'])));
$new_studying = htmlentities(trim(strip_tags(@$_POST['studying'])));
$new_lang = htmlentities(trim(strip_tags(@$_POST['lang'])));
$new_rel = htmlentities(strip_tags(@$_POST['rel']));

if(isset($_POST['update_data'])){
// need to check if the username has data already in the db, if so, then we update the data, otherwise we insert data.
$get_bio = mysqli_query($connect, "SELECT * FROM user_bio WHERE username ='$username'");
$row_returned = mysqli_num_rows($get_bio);
$get_row = mysqli_fetch_assoc ($get_bio);
$u_name = $get_row['username'];

if ($u_name == $username){
$update_details_query = mysqli_query ($connect, "UPDATE user_bio SET studying ='$new_studying', language ='$new_lang',
relationship_status = '$new_rel', about_me = '$about_me' WHERE username ='$username'");
echo "
Details updated successfully!
";
} else {
$insert_query = mysqli_query ($connect, "INSERT INTO user_bio
VALUES ('', '$age','$new_studying','$new_lang','$new_rel', '$username', '$about_me'");
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
echo "
Details added successfully! $row_returned
";
}

}
Запрос UPDATE работает нормально, если войти в систему как Конор. Но опять же, INSERT не работает при входе в систему под именем Алисы.

Подробнее здесь: https://stackoverflow.com/questions/363 ... e-database
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»