我公司最近改用PHP。直到今天我们还没有真正的问题。当我将一个在其中包含引号的字符串赋值给变量时,该字符串将使用斜杠转义单引号。
这是一个为期一周的全新安装5.4。我读到5.4没有魔法引号。我搜索了php.ini并且没有在名称中找到任何带有魔法的东西,所以它一定不能打开。
示例:
$sql = "Select Description from value where [Group]='auto_email_test'";
echo dbStr($sql, "0");
当我调试时,$ sql将是
"Select Description from value where [Group]=\'auto_email_test\'";
没有运气。
$sql = "Select Description from value where [Group]='auto_email_test'";
echo dbStr(stripslashes($sql), "0");
为什么php会立即逃避我的报价?为什么stripslashes()无法移除它们?
编辑:显示dbStr();
/**
*
* Executes the $ImcomingSql query and returns the first cell in the first row
*
* @param string $_IncomingSql The sql query that you want to execute.
* @param string $_DefaultValue The value to return if null.
*/
function dbStr($_IncomingSql, $_DefaultValue) {
$Result = Query(Conn, $_IncomingSql);
if ($Result !=0)
{
$Rows = sqlsrv_has_rows($Result);
if ($Rows)
{
$Row = sqlsrv_fetch_array($Result, SQLSRV_FETCH_NUMERIC);
$Result = $Row[0];
return $Result;
}
}
return $_DefaultValue;
}