首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Parameter输出参数

Parameter输出参数
EN

Stack Overflow用户
提问于 2011-09-16 12:16:17
回答 1查看 5.8K关注 0票数 2

我正在为PHP和Server 2008中的输出参数而奋斗。我不断地发现错误:

注意:未定义变量: C:\inetpub\wwwroot\PersonalWebsitePHP\Register.php中的UserID在第67行执行statementArray时出错( =>数组( => IMSSP SQLSTATE => IMSSP 1 => -7代码=> -7 => )无效的statementArray类型被指定为输出参数。不能将DateTime对象、空值和流指定为输出参数。message =>无效的PHP被指定为输出参数。不能将DateTime对象、空值和流指定为输出参数。))

我的代码:

代码语言:javascript
复制
$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时,它只输出在变量中声明的值,而不是输出参数。输入参数工作正常,因为我可以在数据库中看到它们。希望有人能帮上忙。

谢谢

道格拉斯

EN

回答 1

Stack Overflow用户

发布于 2012-10-11 22:19:16

我不是100%确定,但我相信这是在要求您为输出分配一个类型。

试着改变这个:

代码语言:javascript
复制
$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)
               );

代码语言:javascript
复制
$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, SQLSRV_PHPTYPE_INT)
               );

参考资料:这里

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7444516

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档