-2

我已经通过我的 php 文件中的 Windows 身份验证与我的 SQL 数据库建立了连接。但是,如果我想在显示整个表的 php 页面上显示一个简单的 SQL 查询,例如 (Select * from Media),我不确定语法会是什么样子。我尝试了一些方法,但它显示了一个致命错误。

这是我的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

看来您正在混合两种不同的 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

正如其他人在评论中所说,您有两种选择:

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

真诚地,我更喜欢使用 mssql_* 函数堆栈。如果你使用 ubuntu,你可以简单地安装 MSSQL 支持:

aptitude install php5-sybase
于 2013-07-24T14:38:22.473 回答