-2

PHP ファイルで Windows 認証を使用して SQL データベースとの接続を確立しました。ただし、テーブル全体を表示する php ページに (Select * from Media) などの単純な SQL クエリを表示したい場合、構文がどのようになるかわかりません。いくつかの方法を試しましたが、致命的なエラーが表示されました。

phpの私のコードは次のとおりです。

     <?php

     $serverName = "172.20.90.170,5050"; //serverName\instanceName

     // Since UID and PWD are not specified in the $connectionInfo array,
     // The connection will be attempted using Windows Authentication.
     $connectionInfo = array( "Database"=>"TestDB");
     $conn = sqlsrv_connect( $serverName, $connectionInfo);

     if( $conn ) {
     echo "Connection established.<br />";
     }else{
     echo "Connection could not be established.<br />";
     die( print_r( sqlsrv_errors(), true));
     }
     $version = mssql_query('SELECT * FROM MEDIA');
     $row = mssql_fetch_array($version);
     echo $row[0];

     ?> 

致命的な誤り:

  Fatal error: Call to undefined function mssql_query()

これにより正常に接続が確立されますが、このクエリをエラーなしで実行して必要な出力を表示するには、コードで何を変更する必要がありますか?

4

3 に答える 3

3

2 つの異なる API (sqlsrv_mssql_) を混在させているようです。

を使用している場合sqlsrv_、単純なステートメントは次のようになります。

$connectionInfo = array( "Database" => "database", "UID" => "username", "PWD" => "password" );
$conn = sqlsrv_connect( "Server", $connectionInfo );

$stmt = "SELECT [column] FROM [table] WHERE [id] = ?";
$params = array( $id );

$query = sqlsrv_query( $conn, $stmt, $params );
if( $query === false ) {
    print( print_r( sqlsrv_errors() ) );
}

while( $row = sqlsrv_fetch_array( $query, SQLSRV_FETCH_ASSOC )) {
    echo $row['column'];
}

sqlsrv_close( $conn );

資力

于 2013-07-24T14:35:41.947 に答える
1

私が理解していることから、あなたは PHP の世界に不慣れですが、PDO クラスを使用することをお勧めします。やりたいことができるようになります。

これは、データを使用したサンプルです。勉強すればわかります。

try
{
    $connection = new PDO("sqlsrv:Server=172.20.90.170;Database=TestDB", "YOUR_USERNAME", "YOUR_PASSWORD");
    $connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $connection->setAttribute(PDO::SQLSRV_ATTR_ENCODING, PDO::SQLSRV_ENCODING_SYSTEM);
}catch (Exception $e)
{
    echo $e->getMessage();
    die('Connection could not be established.<br />');
}

try
{
    $sql = 'SELECT * FROM MEDIA';
    $query = $connection->prepare($sql);
    $query->execute();

    $result = $query->fetchAll(PDO::FETCH_ASSOC);
}catch (Exception $e)
{
    die('Cant fetch rows.');
}

foreach ($result as $r)
{
    print_r($r); // do what you want here
}
于 2013-07-24T14:41:27.373 に答える
0

他の人がコメントで言っているように、2 つのオプションがあります。

1. Use sqlsrv_query
2. Install MSSQL support to PHP.

心から、関数の mssql_* スタックを使用することを好みます。ubuntu を使用している場合は、MSSQL サポートを簡単にインストールできます。

aptitude install php5-sybase
于 2013-07-24T14:38:22.473 に答える