Запрос к базе данных о пользователе [дубликат]

111
20 июля 2019, 19:30

На данный вопрос уже ответили:

  • Как сделать запрос из РНР к базе данных MySQL? 2 ответа

Допустим id равен 12345.Мне нужно вытащить переменную boss у этого id. и записать в переменную q.Как можно оформить такой запрос в базе данных?

$q = $mysqli->query("SELECT `id`, `boss` FROM `users` WHERE 1");
Answer 1

В SQL запросе после оператора WHERE нужно явно указать не значение, а выражение (сравнение, вхождение, условие). В данном случае можно сравнить id с требуемым номером.

Далее нужно считать строку из запроса, в том случае, если число строк после обработки запроса больше 0, и получить значение переменной. В противном случае обработать ошибку.

$id = "12345";
$sql = "SELECT boss FROM users WHERE id=$id";
$result = $mysqli->query($sql);
if ($result->num_rows > 0) {
  $row = mysql_fetch_assoc($result);
  $q = $row["boss"];
  echo "Boss: $q";
} else {
   echo "We have no record with id $id";
}

Старшие товарищи еще советуют делать все безопасно, и я с ними соглашусь - для таких языков как php, к сожалению, это огромная проблема, сравнимая с выстрелом в ногу: не использовать на прямую переменные в SQL запросах, так как это может закончится плачевно для данных в базе данных.

Если, к примеру у нас id передается как параметр get запроса, то

$stmt = $mysqli->prepare("SELECT boss FROM users WHERE id=?");
$stmt->bind_param('d', $id);
$id = intval($_GET['id']);
if ($stmt->execute()) {
   if ($row = $stmt->fetch()) {
      $q = $row["boss"];
      echo "Boss: $q";
   } else {
      echo "We have no record with id $id";
   }
}
READ ALSO
значения dep drop при update в yii2

значения dep drop при update в yii2

у меня есть 3-х уровневый dep drop, при сохранении значения поступают в базу, но при update выходит значение только 1-вого уровня, а вот остальные два...

114
Social network subscribe mechanism

Social network subscribe mechanism

Ребят кто может объяснить как работает система подписок, ну чтобы отображалось число а при клике отображать их имена

101
Время выполнения методов [дубликат]

Время выполнения методов [дубликат]

На данный вопрос уже ответили:

138
kcfinder + Ckeditor +laravel

kcfinder + Ckeditor +laravel

при загрузке изображения пишет нет прав

107