@Pyhon3x

MySQL, очередная проблема?

Возможно, я повторил свой вопрос. Простите
Мой вопрос:
Что я, в очередной, раз делаю неправильно?
Почему SQL-запрос не выполняется?


Да, в консоли PHPMyAdmin запрос выполняется правильно
-------------------------------------------------------------------------
Вот код:
<?php
  //Require-скрипты
  require 'Authorize.php';
  require 'connect.php';

  //ID сессии, старт сессии
  session_id($_COOKIE['PHPSESSID']);
  session_start();

  $ID = (integer) GetID();
  var_dump($_COOKIE['PHPSESSID']);

  $sql = "SELECT `provider` FROM `Users` WHERE 'ID'=:ID";
  $query = $pdo->prepare($sql);
  $query->execute([
    "ID" => $ID
]);
  $row = $query->fetch(PDO::FETCH_OBJ);

  if($row->provider = "Google") {
    $Authorized = Authorize_Google();

    if($Authorized == true) {
      if(!empty($_COOKIE['session_id'])) {
        $VerificationCode = $_GET['Code'];

        if($VerificationCode == $_SESSION['vereficationCode']) {
          $sql = 'UPDATE `Users` SET `email_verified`=1 WHERE `ID` = :ID'; // <= Проблема в этом запросе
          $query = $pdo->prepare($sql);                                                       
          $query->execute([
            "ID" => $ID
          ]);
          echo "Ваша почта подтверждена!";
        }
      }
    } else {
      echo "<h1 align='center'>Вы не авторизованы, <a href='google.php'>Войдите через Google</a></h1>";
    }
  } else {
    $Authorized = Authorized($_COOKIE['session_id']);
    if($Authorized === true) {
      $VerificationCode = $_GET['Code'];

      if($VerificationCode == $_SESSION['vereficationCode']) {
        $sql = 'UPDATE `Users` SET `email_verified`=1 WHERE `ID` = :ID';
        $query = $pdo->prepare($sql);
        $query->execute([
          "ID" => $ID
        ]);
        $row = $query->fetch(PDO::FETCH_OBJ);
        var_dump($ID);
        echo "Ваша почта подтверждена!";
      }
    } else {
      echo "<h1 align='center'>Вы не авторизированы!</h1>";
      http_response_code(401);
    }
  }


Спасибо
  • Вопрос задан
  • 144 просмотра
Решения вопроса 1
FanatPHP
@FanatPHP
Чебуратор тега РНР
проблема не во втором запросе, а в первом. Имя поля взято в одинарные кавычки.
Судя по всему, в коде нет никаких настроек которые бы сообщали об ошибках.

Соединяться надо как написано здесь
и плюс добавить error_reporting(E_ALL);
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@m1rvi
Попробуй завернуть ID в переменную, а sql так:
$sql = “UPDATE `Users` SET `email_verified`=1 WHERE `ID` =  ‘{$id}’ “;

Ручками там если что поправь, писал не в редакторе.
Ответ написан
@JohnDidact
Нуб во всём
У тебя ID в одинарных кавычках и
$query->execute([
 ":ID" => $ID
]);
вроде бы, точно не помню))

UPD. Проверил в мануале (скрин прикрепил) 5f4a13ed46a04415313555.jpeg скорее всего, я был прав. Ваш код просмотрел бегло, хорошо было бы ещё написать сюда номер и сообщение ошибки, версию PHP/PDO
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы