![](/img/trans.png)
[英]Call SQL Server stored proc from PHP page, and receive string output parameter
[英]SQL Stored Proc Insert string with " and/or '
我正在尝试使用PHP执行SQL Server存储过程
我的PHP基本上是
$value = $_REQUEST['value'];
$query = "EXEC Add_Line @value = '$value'";
我的存储过程基本上是
@value text = ''
Begin
INSERT INTO MyTable (Value) VALUES (@value)
End
我遇到的问题是该值是高度的文本字段,因此常规输入将类似于6'2“。
我的PHP查询成为
EXEC Add_Line @value = '6' 2"'
可以想象,SQL Server根本不喜欢这一行。
我尝试在存储过程中使用replace(@value,“'”,“''”)而不是@value,但似乎无法正常工作。
有什么建议么?
对于其他寻求解决方案的人,Sparky指出问题在于SQL甚至不会尝试执行该过程,因为看到错误了。 我将我的php修改为这样
$value = $_REQUEST['value'];
$new = str_replace("'", "''", $value);
$query = "EXEC Add_Line @value = '$new'";
这完美地工作。
所有功劳归于Sparky。
尝试改为在您的PHP代码中进行替换...
问题是您的值永远不会到达存储过程,SQL将此语句视为错误。
SQL-> EXEC Add_line @valud = '6' 2"
,不知道2”是什么意思
通过在PHP中引用它并传递引用的值
SQL-> EXEC Add_line @valud = '6'' 2"'
SQL知道如何处理
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.