3
$artist_user_ids = implode(',',$artist_user_ids);
$referrer = "referrer IN (?)";
$query = "SELECT id FROM users WHERE $referrer";
$con = db_connect();
$stmt = db_prepare($con, $query);
bind_param('s', $artist_user_ids);
Это не работает. Но если я изменю 1-ю строку на:php mysqli обязательная проблема с IN-кодом
$artist_user_ids = "'" . implode(',',$artist_user_ids) . "'";
Это работает как шарм. Что дает?
возможно дубликат [Могу ли я связать несколько значений в качестве одного параметра с помощью Mysqli и PHP?] (Http: // stackoverflow.com/questions/3753295/can-i-bind-multiple-values-as-a-single-parameter-using-mysqli-and-php) –
@Michael Не совсем. Мой вопрос: ** почему **? 'implode()' возвращает строку. Зачем мне указывать строку? –
Поскольку предложение IN принимает несколько параметров. Чтобы связать их, они должны быть связаны как несколько параметров. Строка значений не может быть оценена по нескольким параметрам - это приведет к нарушению предоставленных параметров безопасности. –