@forestcat

Как убрать апострофы в подготовленном select запросе mysql pdo?

Всем привет.
Есть отрывок кода:

$sqlMaterial = "SELECT material.id, provider.provider_company AS provider, materials_type.name AS typeMaterial, material.name, price , type_of_currency.type AS type_of_currency ,IFNULL(delivery_conditions, '') AS delivery_conditions, IFNULL(min_m2, '') AS min_m2 FROM material, provider, materials_type, type_of_currency WHERE material.id_materials_type =:one AND material.id_provider =:two AND material.id_type_of_currency =:three";

$binParam = ['one' => "materials_type.id", 'two' => "provider.id", 'three' => "type_of_currency.id"];

$data['material'] = query($sqlMaterial, $binParam, __CLASS__);

function query($sql, $param, $class)
{
	try{
		$sth = $this->dbh->prepare($sql);
		$res = $sth->execute($param);
		if(false !== $res){
			return $sth->fetchAll(\PDO::FETCH_CLASS, $class);
		}
	}
	catch(\ErrorException $e){
		throw new \ErrorException($e->getMessage(), $e->getFile());
	}
	return [];
}

Код работает без ошибок, но я не могу получить данные из бд (возвращается пустой массив).
Когда смотрю Mysql лог openserver-а, то вижу что где
material.id_materials_type ='materials_type.id'
и material.id_provider ='provider.id'
и material.id_type_of_currency ='type_of_currency.id'
Эти поля со значениями (binParam) попадают в бд с апострофами (''), как их убрать?
Или что нужно переписать чтобы подготовленные запросы попадали в mysql запрос без апострофов?
PS Без апострофов и подготовленных запросов выборка из бд проходит нормально
Сам в php не силен, заранее благодарен.

Лог Mysql из openserver

2364 Query SELECT material.id, provider.provider_company AS provider, materials_type.name AS typeMaterial, material.name, price , type_of_currency.type AS type_of_currency ,IFNULL(delivery_conditions, '') AS delivery_conditions, IFNULL(min_m2, '') AS min_m2 FROM material, provider, materials_type, type_of_currency WHERE material.id_materials_type ='materials_type.id' AND material.id_provider ='provider.id' AND material.id_type_of_currency ='type_of_currency.id'
  • Вопрос задан
  • 268 просмотров
Решения вопроса 1
Austin_Powers
@Austin_Powers
Web developer (Symfony, Go, Vue.js)
Не передавайте наименования столбцов как параметры а пишите в своем SQL запросе.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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