2016-06-01 2 views
0

Я много искал и не могу найти свой ответ. Я пытаюсь включить 2 переменную в мой оператор, чтобы соответствовать дате, которая не была правильно отформатирована в базе данных, над которой я работаю.Множественная переменная в одном SQL Как

мне нужно:

Select count(*) as ABC 
    from database 
    where active like '1' 
     and agent = '$Employeestringid' 
     AND time LIKE '%$FilterMonth_%_$queryyear'" 

Та часть, которая в настоящее время не работает в: '%$FilterMonth_%_$queryyear'

мне нужно работать и соответствовать дате, отформатированный как: '9:10:31 PM Fri, May 20th 2016' лишь захватив месяц и год.

+0

Почему не только часть из времени, чтобы два значения, передаваемых в и сделать проверку равенства? Рассмотрим 'и year (time) = $ Queryyear и month (time) = $ FilterMonth' [Doc Date Functions] (https://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions .html) – xQbert

ответ

1

Когда интерполяционный переменные в строке, PHP читает _ как часть имени переменной.

Вы должны использовать {}, чтобы предотвратить такое поведение:

$query = "Select count(*) as ABC 
    from database 
    where active like '1' 
     and agent = '$Employeestringid' 
     AND time LIKE '%{$FilterMonth}_%_{$queryyear}'"; 
+0

Удивительный! Это сработало - большое спасибо за вашу быструю помощь Rocket :) – SiREKT

+0

Добро пожаловать :) –

0

Удалить подчеркивание

'%$FilterMonth%$queryyear' 
+0

Это может * слегка * изменить запрос ... –

+0

Спасибо Mojtaba - Рекомендация, которую я получил от Rocket, работала в моем коде :) Проблема решена. – SiREKT

+0

@SiREKT. Рад слышать. Итак, пожалуйста, отметьте это как решение – Mojtaba

Смежные вопросы