#php #mysql #question2answer
#php #mysql #вопрос2ответ
Вопрос:
Я модифицирую плагин скрипта «Question2Answer», и после активации плагина я получаю следующую ошибку:
MySQL query error HY093: SQLSTATE [HY093]: Invalid parameter number: number of bound variables does not match number of tokens - Query: SELECT COUNT(event) FROM qa_eventlog WHERE datetime >= FROM_UNIXTIME(? ) AND ((userid = ? AND event LIKE "in_%") OR (event IN ("u_message", "u_wall_post") AND params LIKE "userid=?t%"), referer: http://rankeo.test/index.php?qa=questions
Функция, в которой вы создаете такой код, выглядит следующим образом:
private function getEventCount($last_visit, $userid)
{
$currentTime = (int)qa_opt('db_time');
$maxageTime = $currentTime - (int)qa_opt('q2apro_onsitenotifications_maxage') * 86400;
$fromTime = max($maxageTime, $last_visit);
$eventlogCount = qa_db_read_one_value(qa_db_query_sub(
'SELECT COUNT(event) FROM ^eventlog ' .
'WHERE datetime >= FROM_UNIXTIME(#) AND (' .
'(userid = # AND event LIKE "in_%") OR ' .
'(event IN ("u_message", "u_wall_post") AND params LIKE "userid=#t%")' .
')',
$last_visit,
$userid,
$userid
));
$pluginCount = qa_db_read_one_value(qa_db_query_sub(
'SELECT COUNT(*) FROM ^q2apro_osn_plugin_notifications ' .
'WHERE user_id = # AND created_at >= FROM_UNIXTIME(#)',
$userid, $fromTime
));
return $eventlogCount $pluginCount;
}
Есть идеи, что я делаю не так?
Спасибо!
Комментарии:
1. Работает ли это, если вы измените
params LIKE "userid=#t%"
и$userid
наparams LIKE #
и"userid=" . $userid . "t%"
?