Здесь мы идем. Я все еще довольно новичок в PHP, и я пытаюсь изучить PDO. Я пытаюсь понять, почемуУстранение неполадок PHP PDO Подготовить инструкцию привязки
$validStartYear=-1;
echo $listString; //$listString = 'WHERE a regexp "Nissan"'
$queryToPrep='SELECT a FROM b WHERE a regexp "Nissan" ORDER BY start_year asc LIMIT 1;';
$query = $newMysql->prepare($queryToPrep);
$query->execute();
echo '<br/><br/>';
print_r($query);
echo '<br/>';
$row=$query->fetch();
echo $row[0],'<br/>';
выходы
a regexp "Nissan"
PDOStatement Object ([queryString] => SELECT a FROM b WHERE a regexp "Nissan" ORDER BY start_year asc LIMIT 1;)
1971
в то время как
$prepAgain='SELECT a FROM b WHERE ? ORDER BY a asc LIMIT 1;';
$query2= $newMysql->prepare($prepAgain);
$query2->bindParam(1, $listString, PDO::PARAM_STR);
$query2->execute();
echo '<br/>';
print_r($query2);
echo '<br/>';
$row2=$query2->fetch();
echo $row2[0];
выходы
PDOStatement Object ([queryString] => SELECT start_year FROM engine_kits WHERE ? ORDER BY start_year asc LIMIT 1;)
значение не возвращается. Я получаю пустой массив, независимо от того, насколько сильно я ухожу. Синтаксис кажется правильным, но я что-то упускаю?
Вы не можете заменить любую произвольную составляющую SQL строки с ''? Заполнителей. Я не уверен, поддерживает ли PDO заполнители для REGEXP, но если это так, это должно быть что-то вроде 'WHERE regexp?' –
Итак, каково значение $ listString? –
Зачем вам «REGEXP» здесь? – zerkms