Php SQL存储过程插入字符串,带“0”;和/或';
我正在尝试使用PHP执行SQL Server存储过程 我的PHP基本上是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
$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将此语句视为错误谢谢!这非常有效。