출력 매개 변수 :PHP는 SQL 서버 내가 오류가 계속 PHP에서 출력 매개 변수 및 SQL Server 2008과 사투를 벌인거야
Notice: Undefined variable: UserID in C:\inetpub\wwwroot\PersonalWebsitePHP\Register.php on line 67 Error in executing statementArray ([0] => Array ([0] => IMSSP [SQLSTATE] => IMSSP [1] => -7 [code] => -7 [2] => An invalid PHP type was specified as an output parameter. DateTime objects, NULL values, and streams cannot be specified as output parameters. [message] => An invalid PHP type was specified as an output parameter. DateTime objects, NULL values, and streams cannot be specified as output parameters.))
내 코드 :
$con = sqlsrv_connect(".\SQLExpress", $connectionInfo);
if ($con === false) {
echo "Could not connect \n";
die(print_r(sqlsrv_errors(), true));
}
$params = array(
array($_POST["FirstName"], SQLSRV_PARAM_IN),
array($_POST["LastName"], SQLSRV_PARAM_IN),
array($_POST["Email"], SQLSRV_PARAM_IN),
array($_POST["Username"], SQLSRV_PARAM_IN),
array(md5($_POST["Password"]), SQLSRV_PARAM_IN),
array(date("Y-m-d H:i:s"), SQLSRV_PARAM_IN),
array($_SERVER["REMOTE_ADDR"], SQLSRV_PARAM_IN),
array("Member", SQLSRV_PARAM_IN),
array("No", SQLSRV_PARAM_IN),
array($UserID, SQLSRV_PARAM_OUT)
);
$tsql_callSP = "{call InsertUser(?,?,?,?,?,?,?,?,?,?)}";
$stmt3 = sqlsrv_query($con, $tsql_callSP, $params);
if ($stmt3 === false) {
echo "Error in executing statement";
die(print_r(sqlsrv_errors(), true));
}
sqlsrv_next_result($stmt3);
echo "Hi " . $_POST["FirstName"] . ", your User ID is " . $UserID . ".";
}
} else {
die ("The reCAPTCHA wasn't entered correctly. Go back and try it again.");
}
내가 다음에 자습서 정확하게. 배열 앞에 $ UserID를 선언하면 output 매개 변수가 아니라 변수에 선언 된 값이 출력됩니다. 입력 매개 변수는 데이터베이스에서 볼 수 있으므로 제대로 작동합니다. 누군가가 이걸 도울 수 있기를 바랍니다.
당신에게
더글라스
같은 문제. – Teddy