Я использую db_placeholder в запросе для замены массива строк.
$paths = array("commentary_analysis/18", "commentary_analysis/16", "commentary_analysis/95", "commentary_analysis/89");
$query = "SELECT DISTINCT a.uid, u.mail FROM {alerts} a JOIN {users} u on u.uid = a.uid WHERE u.mail IS NOT NULL AND u.mail != '' AND u.status = 1 AND a.status = %d AND a.view_path IN (" . db_placeholders($paths, 'text') . ") ORDER BY a.uid ASC";
$users_to_notify = db_query($query, $alert_status, $paths);
Запрос не возвращает результаты, когда я знаю, что долженЯ отладил запрос, чтобы увидеть точный запрос, который запускается.Запускаемый запрос:
SELECT DISTINCT a.uid, u.mail FROM alerts a JOIN users u on u.uid = a.uid WHERE u.mail IS NOT NULL AND u.mail != '' AND u.status = 1 AND a.status = 1 AND a.view_path IN ('','','','') ORDER BY a.uid ASC
Уведомление, a.view_path IN ('','','','')
.Это проблема.Из того, что я вижу, я ожидаю, что db_placeholder привыкнет с правильным синтаксисом.
Может кто-нибудь сказать мне, почему мое использование db_placeholder возвращает ('','','','')
вместо ("commentary_analysis/18", "commentary_analysis/16", "commentary_analysis/95", "commentary_analysis/89")
?