5

因此,当我想向 ms sql 服务器查询某些内容时,我不断收到此错误。

已与数据库建立连接,但查询似乎失败。

错误日志包含以下内容:

    PHP Fatal error:  Call to undefined function mssql_query()

php上的代码:

session_start();
include_once("connect.php");
if (isset($_POST['username'])) {
$username = $_POST['username'];
$password = $_POST['password'];
$sql = "SELECT * FROM test WHERE username='".$username."' AND password='".$password."'";
$res = mssql_query ($sql) or die(mssql_error());

if (mssql_num_rows($res) == 1) {
    $row = mssql_fetch_assoc($res);
    $_SESSION['uid'] = $row['id'];
    $_SESSION['username'] = $row['Username'];
    $_SESSION['afdeling'] = $row['Afdeling'];
    $_SESSION['mail'] = $row['Mail'];
              header("Location: test.php");
    exit();
} else {
    echo "Invalid login information. Please return to the previous page.";
    exit(); }  }  ?>

有谁知道问题是什么?

提前致谢!

connect.php 代码:

<?php
$serverName = "MTN-TEST"; //serverName\instanceName
$connectionInfo = array( "Database"=>"PROCES_TEST", "UID"=>"blaaa", "PWD"=>"blooo");
$conn = sqlsrv_connect( $serverName, $connectionInfo);

if( $conn ) {
     echo "<span style='color:green;'>Connection established.</span><br />";
}else{
     echo "<span style='color:red;'>Connection could not be established.</span><br />";
    die( print_r( sqlsrv_errors(), true));
}
?>
4

3 回答 3

10

您没有安装 MS SQL 驱动程序。你可以检查这个phpinfo();

Linux 上你需要 mssql.so 或 sybase.so 使用 debian 它apt-get install php5-sybase

对于windows看看这里:http: //msdn.microsoft.com/en-US/library/cc793139%28v=SQL.90%29.aspx

需要为 PHP 配置驱动程序才能找到函数 mssql_...

您还可以查看 PDO DB 类,因为它们可以连接到任何 DBS,您需要安装驱动程序。

于 2013-06-14T08:11:52.770 回答
3

如果您的 connect.php 代码返回“已建立连接。”,这意味着您正确安装了 MS SQL 驱动程序。您必须使用sqlsrv_queryfunction 而不是mssql_query. 该命令的正确形式是:

     <?php
                $serverName = "serverName"; 
                $options = array(  "UID" => "sa",  "PWD" => "Password",  "Database" => "DBname");
                $conn = sqlsrv_connect($serverName, $options);

                if( $conn ) {
                     echo "Connection established.<br />";

                     $query='select * from test';
                     $result = sqlsrv_query($conn,$query);

                }else{
                     echo "Connection could not be established.<br />";
                     die( print_r( sqlsrv_errors(), true));
                }

            ?>

你可以在这里了解更多:

“PHP 致命错误:在第 16 行的 c:\...appscript.php 中调用未定义函数 mssql_select_db()”

于 2016-04-27T17:16:36.773 回答
0

您可以使用mssql_get_last_message()处理 mssql 错误

于 2014-11-12T11:45:16.760 回答