MySQL Medoo тип данных силы
В настоящее время я пытаюсь получить строки из моей базы данных MySQL в определенном порядке.
Поэтому я нашел такой запрос полезным:
SELECT * FROM tbl_items WHERE id IN (130,129) ORDER BY FIELD(ID, 130,129)
Когда я запускаю это непосредственно в MySQL, все работает нормально.
Сейчас в PHP я использую базу данных базы Medoo.
То, что я делаю, выполняет этот запрос:
$asservate = $database->query("SELECT *
FROM tbl_items
WHERE ID in (:ids)
ORDER BY FIELD(ID,:ids)",
[":ids" => intval($items)])
->fetchAll();
Результатом этого запроса, когда я повторяю последний выполненный запрос, является следующее:
SELECT * FROM tbl_items WHERE ID in ('129,130') ORDER BY FIELD(ID,'129,130')
Значения вводятся в виде строк, и это кажется проблемой. В результате я получаю только номер строки 129, никакой другой.
Есть ли идея, как я мог заставить Меду не вводить значения с '
или как я мог заставить MySQL по-прежнему выполнять запрос, даже с '
там?
Заранее спасибо!
РЕДАКТИРОВАТЬ:
Вот код для query
-функция Меду:
public function query($query, $map = [])
{
if (!empty($map))
{
foreach ($map as $key => $value)
{
switch (gettype($value))
{
case 'NULL':
$map[ $key ] = [null, PDO::PARAM_NULL];
break;
case 'resource':
$map[ $key ] = [$value, PDO::PARAM_LOB];
break;
case 'boolean':
$map[ $key ] = [($value ? '1' : '0'), PDO::PARAM_BOOL];
break;
case 'integer':
case 'double':
$map[ $key ] = [$value, PDO::PARAM_INT];
break;
case 'string':
$map[ $key ] = [$value, PDO::PARAM_STR];
break;
}
}
}
return $this->exec($query, $map);
}