3

こんにちは、スクリプトの実行に問題があります。2 つのパラメーターが必要であるというエラー メッセージが表示され続け、修正方法がわかりません。スクリプトは次のとおりです。

<?php
session_start ();
if(isset($_SESSION['user'])){
$username = $_SESSION['username'];
if(isset($_POST['submit'])){
    $oldpassword = $_POST['oldpassword'];
    $newpassword = $_POST['newpassword'];
    $serverName = "server";
    $connectionInfo = array("Database"=>"database","UID"=>"id", "PWD"=>"pass");
    $conn = sqlsrv_connect( $serverName, $connectionInfo);
    if( $conn === false){
        echo "Error in connection.\n";
        die( print_r( sqlsrv_errors(), true));
    }
    $tsql = "SELECT userPass FROM customers WHERE userName='$username'";
    $stmt = sqlsrv_query($conn, $tsql, array(), array( "Scrollable" => 'static' ));
    if ( !$stmt ){
        die( print_r( sqlsrv_errors(), true));
    }
    $rows = sqlsrv_num_rows($stmt);
    if($rows === false){
        die( print_r( sqlsrv_errors(), true));
    }elseif($rows == 0){
        echo "No rows returned.";
        exit();
    }else{
        $querychange = sqlsrv_query("UPDATE customers SET userPass='$newpassword' WHERE userName='$username'");
        session_destroy();
        die ("Your password has been changed. <a href='index.php'>Return</a> to the main page and login with your new password.");
    }
}
}
?>

このエラーが発生し続けます

PHP の警告: sqlsrv_query() は少なくとも 2 つのパラメーターを想定しており、そのうちの 1 つは 27 行目の file_name.php で指定されています

行 27 は、顧客を更新する場所です。誰かがスクリプトのエラーを見つけることができたら、私に知らせてもらえますか? はい、私は SQL インジェクションを行っていません。この段階では、それを実装する前に機能させようとしています。

すべての助けをありがとう、それは大歓迎です

4

1 に答える 1

2

接続を sqlsrv_query に渡してみてください

何かのようなもの:

 $querychange = sqlsrv_query($conn, "UPDATE customers SET userPass='$newpassword' WHERE userName='$username'");
于 2013-05-12T13:15:57.667 に答える