обернуть текстовые значения в строку при использовании mysql, где в выражении

У меня есть массив значений, которые я взрываю, чтобы дать мне список через запятую для использования в MySQL, где в предложении.

SELECT count(id) FROM products WHERE id in (val1, val2, 3, 4, 5);

этот оператор прерывается, когда текстовое значение не заключено в кавычки.

Поэтому теоретически мне нужно сначала пройтись по списку и обернуть все текстовые значения, прежде чем переходить к оператору mysql.
Есть идеи?

Пример кода:

$skus = array();

foreach($csv_array as $row)
{
$skus[] = $row['skunumber'];
}

$skulist = implode(",",$skus);

Я исправил это с помощью:

foreach ($csv_array as $row)
{
if (is_numeric($row['skunumber']))
{
$skus[] = $row['skunumber'];
}
else
{
$skus[] = '"'.$row['skunumber'].'"';
}
}

$skulist = implode(",",$skus);

0

Решение

Некоторые быстро предлагают:

$arr = array('var', 3, 'var2', '5');

$inStr = "('".implode("', '", $arr)."')";

дает:

('var', '3', 'var2', '5')

В заключение:

SELECT count(id) FROM products WHERE id in $inStr;
0

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

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

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