Замените mysqli_num_rows на fetchColumn PDO & gt; = 1

У меня проблема с этим. В основном я хочу заменить if (mysqli_num_rows ($ result_password)> = 1) {вторым кодом

<?php
class DataBase {

private $DB_HOST = DBHOST;
private $DB_NAME = DBNAME;
private $DB_USER = DBUSER;
private $DB_PASS = DBPASS;
private $PDO;

public function __construct() {
$this->PDO = new PDO("mysql:host=".$this->DB_HOST."; dbname=".$this->DB_NAME, $this->DB_USER, $this->DB_PASS, array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
}
public function select($query, $bindings = []) {
$STH = $this->PDO->prepare($query);
$STH->execute($bindings);
$result = $STH->fetchAll(PDO::FETCH_ASSOC);
return $result ? $result : false;
}

public function query($query, $bindings = []){
$STH = $this->PDO->prepare($query);
return $STH->execute($bindings);
}

public function selectOne($query, $bindings = []) {
$STH = $this->PDO->prepare($query);
$STH->execute($bindings);
$result = $STH->fetch(PDO::FETCH_ASSOC);
return $result ? $result : false;
}

}

И я пытаюсь заменить if(mysqli_num_rows($pw_result )>=1){ с этим:

if ($pw_result = $conn->query($pw_query)) {

if ($pw_result->fetchColumn() >=1) {

Отсутствующий запрос:

$pw_query = "SELECT password FROM passwords WHERE password='$valid' AND executed='no'";

Но он продолжает давать мне эту ошибку: Неустранимая ошибка: вызов функции-члена fetchColumn () в логическом

Я знаю, что есть много постов с этим, но я уже ищу и не могу найти его, поэтому я здесь, и, возможно, очень просто.

-1

Решение

Ваш DataBase::query() метод возвращает результат $STH->execute(), который всегда будет true / false показатель успеха.

Если вы хотите использовать результат запроса, функция должна вернуть $STH вместо.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector