繁体   English   中英

SQL存储的Proc插入字符串,带有“和/或”

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM