php - PHP - 执行 SQL 调用函数不起作用
问题描述
我是 PHP 新手,我不知道我在做什么。我正在尝试在我的 MSSQL 数据库中执行插入操作。不太确定为什么这不起作用。
function Register_WBG_Tester($Email, $FullName, $ChatHandle, $Product, $PreferedGenre, $PreviousTester, $AgeGroup, $PlayTime, $Discord, $NDA)
{
sqlsrv_configure('WarningsReturnAsErrors',0);
$query;
$result;
$query = (string)"
DECLARE @Response AS BIT = 0;
IF NOT EXISTS(SELECT Email FROM [dbo].[WBG_Tester] WHERE [Email] = $Email) BEGIN
INSERT INTO [dbo].[WBG_Tester]
([Email]
,[Full_Name]
,[Chat_Handle]
,[Product]
,[Prefered_Genre]
,[Previous_Tester]
,[Age_Group]
,[Play_Time]
,[Discord]
,[NDA_Agreement])
VALUES
($Email
,$FullName
,$ChatHandle
,$Product
,$PreferedGenre
,$PreviousTester
,$AgeGroup
,$PlayTime
,$Discord
,$NDA
)
SET @Response = 1
END ELSE BEGIN
SET @Response = 0
END
SELECT @Response"
$result =(bool)mssql_query($query);
return $result;
}
我以前从未使用过 PHP,主要使用 .Net 我更喜欢 exec 调用存储过程而不是字符串查询。任何帮助都会很棒。我发现的一切都是针对 MySQL 的。似乎是 PHP 的首选。
解决方案
这是您可以在 php 中执行存储过程的方法
sqlsrv_prepare ( resource $conn , string $sql [, array $params [, array $options ]] ) : mixed
准备执行查询。此函数非常适合准备将使用不同参数值多次执行的查询。
$sql = "EXEC stp_Create_Item @Item_ID = ?, @Item_Name = ?";
$stmt = sqlsrv_prepare($conn, $sql, $procedure_params);
if (!sqlsrv_execute($stmt)) {
echo "Your code is fail!";
die;
}
while($row = sqlsrv_fetch_array($stmt)){
//Stuff
}
更多详情请访问,php官方文档。
推荐阅读
- spring4d - 是否有任何延迟的 MultiCast-Event,它可以被中断?
- flutter - 如何在 Flutter 上为 MaterialButton 设置圆角边框?
- javascript - 解构时访问传入的父对象
- mysql - mysql连接查询中的未知列
- angular - 角度材料日期选择器最小和最大日期验证消息
- java - 如何从 StateMachineConfigurer 创建 StateMachine
- xslt - 如果 XSLT 中的输出为空,我尝试删除特定元素
- android - 未能在 JUnit (espresso) 记录测试中授予权限
- c - VS2019 linux头文件
- amazon-web-services - 如何理解 AWS VPC Flow Log 端口?