在PHP文件中运行SQL查询

时间:2013-07-24 14:30:35

标签: php sql-server

我已经在我的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()

这建立了一个成功的连接,但是我需要在我的代码中更改此查询以便无错运行并显示所需的输出?

3 个答案:

答案 0 :(得分: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 );

<强>资源

答案 1 :(得分: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
}

答案 2 :(得分:0)

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

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

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

aptitude install php5-sybase