2016-09-01 4 views
-3

Я хочу, чтобы выполнить следующий SQL-код в PHP и сохранить результат в переменной:Как запустить многострочные запросы sql в php?

declare @d1 datetime, @d2 datetime 
select @d1 = '9/9/2011', @d2 = '9/18/2011' 

select datediff(dd, @d1, @d2) - (datediff(wk, @d1, @d2) * 2) - 
    case when datepart(dw, @d1) = 1 then 1 else 0 end + 
    case when datepart(dw, @d2) = 1 then 1 else 0 end 

Любая помощь будет оценена. Благодаря!

+1

Любая попытка будет оценена по достоинству. –

+1

Wellllllll, вам нужно сначала попробовать что-нибудь! (PHP необходимо: подключиться к БД, создать запрос и сохранить в var, получить данные с помощью цикла) –

+1

На каком уровне вы? Вы хотите абсолютные основы работы SQL-запросов в PHP? Или вы ищете более подробную помощь, чтобы этот конкретный запрос работал? – Iain

ответ

1

С помощью PHP вы не будете использовать операторы 'declare'. Вы должны использовать переменные для определения желаемых дат. Предположим, вы знаете, что знаете, что хотите использовать «9/9/2011» как d1 и «9/18/2011» как d2 (я также предполагаю, что вы используете Postgres, но pgsql может быть изменен в вашем модуле СУБД)

$dbConnection = new PDO('pgsql:host=<db_host>;dbname=<db_name>;user=<db_username>;password=<db_password>'); 

$d1 = '9/9/2011'; 
$d2 = '9/18/2011'; 

$query = "select datediff(dd, :date_one, :date_two) - (datediff(wk, :date_one, :date_two) * 2) - 
case when datepart(dw, :date_one) = 1 then 1 else 0 end + 
case when datepart(dw, :date_two) = 1 then 1 else 0 end"; 

$statement = $dbConnection->prepare($query); 
$statement->bindParam('date_one',$d1); 
$statement->bindParam('date_two',$d2); 

$statement->execute(); 

$results = $statement->fetch(); 

Попробуйте это. Не зная точно, что вы пытаетесь выполнить здесь или на каком уровне PHP/SQL вы знаете, это, по крайней мере, отправная точка.

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