@Chesterfield25

Как переписать код в PDO?

Есть код как его правильно переписать в PDO?

if (!empty($_POST['email']) && !empty($_POST['apiKey'])) {
            $conn = mysqli_connect("localhost", "root", "", "db_user");
            $email = $POST['email'];
            $apiKey = $_POST['apiKey'];
            $result = array();
            if ($db) {
                $sql = "SELECT * FROM users WHERE email = '".$email."' AND apiKey = '".$apiKey."'";
                $res = mysqli_query($db, $sql);
                if (mysqli_num_rows($res) != 0) {
                    $row = mysqli_fetch_assoc($res);
                    $result = array("status"=>"success", "message"=>"Data fetched successfully", "login"=> $row['login'], "email"=> $row['email'], "apiKey"=> $row['apiKey']);
                } else $result = array("status"=>"failed", "message"=>"Unauthorised access");
            } else $result = array("status"=>"failed", "message"=>"Database connection failed");
        } else $result = array("status"=>"failed", "message"=>"All fields are required");
  • Вопрос задан
  • 98 просмотров
Пригласить эксперта
Ответы на вопрос 1
@alexalexes
Нужно заменить на PDO аналоги функций в этих строчках:
$conn = mysqli_connect("localhost", "root", "", "db_user");
...
$sql = "SELECT * FROM users WHERE email = '".$email."' AND apiKey = '".$apiKey."'"; // а тут нужно использовать подготовленный запрос для того, чтобы безопасно добавить параметры 
                $res = mysqli_query($db, $sql); // в подготовленном запросе на этом месте у вас будет execute-метод
                if (mysqli_num_rows($res) != 0) {
                    $row = mysqli_fetch_assoc($res);
...

PS: Вероятно, у вас проблема не в PDO, а в вообще, как переписать в подготовленный запрос.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы