Всем привет.
Есть отрывок кода:
$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'