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

関数 mssql_... を見つけるには、PHP 用にドライバーを構成する必要があります。

PDO DB クラスは任意の DBS に接続できるため、ドライバーをインストールする必要があります。

于 2013-06-14T08:11:52.770 に答える
3

connect.php コードが「接続が確立されました。」を返す場合は、MS SQL ドライバーが正しくインストールされていることを意味します。sqlsrv_queryの代わりに関数を使用する必要があり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 に答える