2016-11-22 9 views
3

MSSQLからストアドプロシージャを呼び出すPHPファイルがあります。ストアドプロシージャは値を計算し、一時テーブルに格納します。このようなPHPからストアドプロシージャを呼び出すときSQL Server 2012のMSSQL_Queryを使用してPHPストアドプロシージャを呼び出すと無効な値が返される

$cmd="exec get_value ".implode(",",$parameter_arr); 
$result = mssql_query("SET ANSI_NULLS ON;"); 
$result = mssql_query("SET ANSI_WARNINGS ON;"); 
$result= mssql_query($cmd,$conn) or die("Error :".mssql_get_last_message()); 

値の戻り値は整数ではなく「::」のみでした。 Iは、T-SQLのストアドプロシージャを実行する

、それが正しい値'02を返す:15:00' T-SQL output

私はPHP 5.3.3を使用しています。私は私のPHPをアップグレードする必要がありますか?なぜPHPで正しく値を表示できないのですか?

私はストアドプロシージャを制御できません。しかし、私は私のPHPページに結果を表示する必要があります。しかし、結果は不完全です。一部の値は戻ってきており、戻っていない値もありますSELECTステートメントで重い計算値を持つこれらの値は、PHPページに表示される問題があります。 Like

SELECT CASE WHEN LEN(CONVERT(VARCHAR,CONVERT(INT,ETS_PhoneHours*1.0))) = 1 THEN '0' + CONVERT(VARCHAR,CONVERT(INT,ETS_PhoneHours*1.0)) ELSE CONVERT(VARCHAR,CONVERT(INT,ETS_PhoneHours*1.0)) END + ':' 
       + CASE WHEN LEN(CONVERT(VARCHAR,CONVERT(INT,(ETS_PhoneHours*1.0 - CONVERT(INT,ETS_PhoneHours*1.0))*60))) = 1 THEN '0' + CONVERT(VARCHAR,CONVERT(INT,(ETS_PhoneHours*1.0 - CONVERT(INT,ETS_PhoneHours*1.0))*60)) ELSE CONVERT(VARCHAR,CONVERT(INT,(ETS_PhoneHours*1.0 - CONVERT(INT,ETS_PhoneHours*1.0))*60)) END + ':' 
       + CASE WHEN LEN(SUBSTRING(CONVERT(VARCHAR,CONVERT(INT,((ETS_PhoneHours*1.0 - CONVERT(INT,ETS_PhoneHours*1.0))*60 - CONVERT(INT,(ETS_PhoneHours*1.0 - CONVERT(INT,ETS_PhoneHours*1.0))*60))*60)),1,2)) = 1 THEN '0' + SUBSTRING(CONVERT(VARCHAR,CONVERT(INT,((ETS_PhoneHours*1.0 - CONVERT(INT,ETS_PhoneHours*1.0))*60 - CONVERT(INT,(ETS_PhoneHours*1.0 - CONVERT(INT,ETS_PhoneHours*1.0))*60))*60)),1,2) ELSE SUBSTRING(CONVERT(VARCHAR,CONVERT(INT,((ETS_PhoneHours*1.0 - CONVERT(INT,ETS_PhoneHours*1.0))*60 - CONVERT(INT,(ETS_PhoneHours*1.0 - CONVERT(INT,ETS_PhoneHours*1.0))*60))*60)),1,2) END 
     AS 'ETS_Program_Hours' 

これは::だけ私のmssql_queryに戻ります。 誰も前に同様の問題に直面していますか?

アドバイスをしてください。ありがとう

+0

私は、ストアドプロシージャからの戻り値を表示する必要があります。しかし、PHPはすべての戻り値を表示することはできません。 –

答えて

0

なぜあなたはCONVERTを使用しませんか?

SELECT CONVERT(nvarchar(40),ETS_PhoneHours,108) AS 'ETS_Program_Hours' 
関連する問題