0

MSSQL テーブルから Excel にデータをエクスポートしようとしています。以下は私のコードです。問題は、次のエラーが発生することです。

    Fatal error: Call to undefined function mssql_fetch_array() in C:xampp\code.php on line 25

Windows Server 2008 R2、IIS7、SQL Server 2008、PHP バージョン 5.4.4 を実行しています。

C:\xampp\php\php.ini にある "extension=php_mssql.dll" という行のコメントを外しました。

    <?php
// load library
require 'include\php-excel.class.php';

$i = 0; // used as a counter

$myServer = "SERVERNAME\SQLEXPRESS";
$myUser = "UserName";
$myPass = "xxxxxx";
$myDB = "dbName";

$conn = new COM ("ADODB.Connection") or die("Cannot start ADO");

$connStr = "PROVIDER=SQLOLEDB;SERVER=".$myServer.";UID=".$myUser.";PWD=".$myPass.";DATABASE=".$myDB;
$conn->open($connStr); //Open the connection to the database

$result = "SELECT Col1, Col2, Col3 FROM myTable WHERE Col3='myCondition'";

//$rs = $conn->execute($result);
//$num_columns = $rs->Fields->Count();

    // create data array and print headers on the first row
    $data = array(1 => array ('No.', 'Col1', 'Col2', 'Col3'));

    while($row=mssql_fetch_array($result)) {
//include additional rows
array_push($data, array($i, $row['Col1'], $row['Col2'], $row['Col3']));
$i++;
}

// If no results, indicate this on the first row
if ($i == 0){
$data = array(1 => array ('No results', 'empty', 'empty', 'empty'));
                        }

//generate file (constructor parameters are optional)
$xls = new Excel_XML('UTF-8', false, 'My Test Sheet');
$xls->addArray($data);
$xls->generateXML('MyReport');
    ?>

前もって感謝します。

4

4 に答える 4

1

PHP5.3以降はmssql関数をサポートしていません。PHP extフォルダーを確認すると、php_mssql.dllがもう存在しないことがわかります。

于 2012-08-16T12:48:13.200 に答える
1

ADODBCOMを使用してDB接続を作成しています。mssql_xxこれは、ライブラリを使用することと同じではありません。

この2つを組み合わせて使用​​することはできません。互換性はありません。

いずれにせよ、あなたは明らかにmssql_xxライブラリをインストールしていないので(それがもうサポートされているかどうかさえわかりません)、それを使用することはできません。

失敗した呼び出しのすぐ上にmssql_fetch_array()、コメントアウトされた行がいくつかあります。

//$rs = $conn->execute($result);
//$num_columns = $rs->Fields->Count();

あなたがそれらを必要とするので、なぜあなたがこれらをコメントアウトしたのかわからない、またはそれらのようなもの。特にそれらの行の最初。その後mssql_fetch_array()、ループ内のレコードを読み取るために同等のADODBを使用する必要があります。

ただし、私のアドバイスは、これらすべてを捨てて、代わりにPDOライブラリの使用に切り替えることです。PDOはMSSQLデータベースをサポートしており、ここで使用しようとしているADODBのものとは異なり、標準のPHPです。

ここでPDOライブラリのPHPマニュアルを参照してください:http://php.net/manual/en/book.pdo.php

于 2012-08-16T13:08:52.127 に答える
0

MS SQL ライブラリの行のコメントを外した後、変更を有効にするために Web サーバーを再起動しましたか?

于 2012-08-14T14:15:44.633 に答える