Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php SQL存储过程插入字符串,带“0”;和/或';_Php_Sql_Sql Server_Stored Procedures - Fatal编程技术网

Php SQL存储过程插入字符串,带“0”;和/或';

Php SQL存储过程插入字符串,带“0”;和/或';,php,sql,sql-server,stored-procedures,Php,Sql,Sql Server,Stored Procedures,我正在尝试使用PHP执行SQL Server存储过程 我的PHP基本上是 $value = $_REQUEST['value']; $query = "EXEC Add_Line @value = '$value'"; @value text = '' Begin INSERT INTO MyTable (Value) VALUES (@value) End 我的存储过程基本上是 $value = $_REQUEST['value']; $query = "EXEC Add_Line @v

我正在尝试使用PHP执行SQL Server存储过程

我的PHP基本上是

$value = $_REQUEST['value'];
$query = "EXEC Add_Line @value = '$value'";
@value text = ''

Begin
INSERT INTO MyTable (Value) VALUES (@value)
End
我的存储过程基本上是

$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"'
可以想象,SQLServer根本不喜欢这一行

我尝试在存储过程中使用replace(@value,“,””)而不是@value,但似乎无法让它工作


有什么建议吗?

对于其他正在寻找解决方案的人,Sparky指出问题是SQL甚至不会尝试执行该过程,因为is看到了错误。我将我的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知道如何处理它

试着在PHP代码中进行替换。。。问题是您的值从未到达存储过程,SQL将此语句视为错误谢谢!这非常有效。