Platshållare kan inte citeras. Enkelt är det:
SELECT ... WHERE foo = ?
SELECT ... WHERE foo = '?'
Den första är en platshållare och fungerar som förväntat. Den andra testar jämställdhet mot tecknet "frågetecken". Det är inte en platshållare längre.
Och sedan finns det problemet med ?
är också en regex-metakaraktär. Om platshållare KAN citeras, då ges
SELECT ... WHERE foo REGEXP '^.?'
skulle det ?
vara en frågeplatshållare, eller är det regex "noll-eller-ett"-intervalloperatorn?
Om du vill använda platshållare i regex måste du "bygga" regexmönstret
SELECT ... WHERE foo REGEXP concat('^.', ?)
Exakt på samma sätt som du skulle behöva bygga en LIKE
mönster:
SELECT ... WHERE foo LIKE '%?%' // wrong
SELECT ... WHERE foo LIKE concat('%', ?, '%') // right