@lexstile

Почему PDO возвращает строку вместо числа?

Есть метод:
public function getUser($user_id) {
		$params = [
			'user_id' => $user_id,
		];
		return $this->db->row('SELECT * FROM users WHERE id = :user_id', $params);
	}

	public function query($sql, $params = []) {
		$stmt = $this->db->prepare($sql);
		if (!empty($params)) {
			foreach ($params as $key => $val) {
				$stmt->bindValue(':'.$key, $val, (is_int($val) ? PDO::PARAM_INT : PDO::PARAM_STR));
			}
		}
		$stmt->execute();
		return $stmt;
	}

	public function row($sql, $params = []) {
		$result = $this->query($sql, $params);
		return $result->fetchAll(PDO::FETCH_ASSOC);
	}


Почему getUser возвращает все данные в виде строки независимо от того - число это или строка?
  • Вопрос задан
  • 253 просмотра
Решения вопроса 1
SagePtr
@SagePtr
Еда - это святое
Тут два варианта: либо у вас СУБД, хранящая данные в виде строк (sqlite к примеру), либо у вас опция PDO::ATTR_EMULATE_PREPARES включена (установлена в true).
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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