Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/263.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.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 mssql_查询警告_Php_Sql Server - Fatal编程技术网

仍然运行脚本的PHP mssql_查询警告

仍然运行脚本的PHP mssql_查询警告,php,sql-server,Php,Sql Server,所以,我正在做一大堆事情,从一台服务器解析XML,将内容写入另一台服务器,然后更新mssql数据库!整个过程似乎运行顺利,直到我从终端运行脚本的乐趣! 当我从终端运行它时,它会抛出一系列警告,如: PHP Warning: mssql_query(): message: Incorrect syntax near 's'. (severity 15) in /Volumes/Data/Users/username/Desktop/createXML.php on line 375 PHP

所以,我正在做一大堆事情,从一台服务器解析XML,将内容写入另一台服务器,然后更新mssql数据库!整个过程似乎运行顺利,直到我从终端运行脚本的乐趣! 当我从终端运行它时,它会抛出一系列警告,如:

PHP Warning:  mssql_query(): message: Incorrect syntax near 's'. (severity 15) in 
/Volumes/Data/Users/username/Desktop/createXML.php on line 375

PHP Warning:  mssql_query(): General SQL Server error: Check messages from the SQL 
Server (severity 15) in /Volumes/Data/Users/username/Desktop/createXML.php on line 375

PHP Warning:  mssql_query(): message: Unclosed quotation mark after the character 
string ';'. (severity 15) in /Volumes/Data/Users/username/Desktop/createXML.php on line 375

PHP Warning:  mssql_query(): General SQL Server error: Check messages from the SQL 
Server (severity 15) in /Volumes/Data/Users/pdwivedi/Desktop/createXML.php on line 375

PHP Warning:  mssql_query(): Query failed in /Volumes/Data/Users/username/Desktop
/createXML.php on line 375
这是第375行:

$query = mssql_query("UPDATE table_name SET C_ITP_STATUS = '".$ITP_Status."', 
C_ITP_ERRORS = '". $ITP_Error ."' WHERE id = '".$ID."';"); 
有趣的是,查询执行了,我有一个更新的数据库。但是,当从终端运行时,它仍然显示这些警告。我想摆脱他们! 我必须使用MS SQL

已经尝试寻找解决方案,但人们很少使用MS SQL,因为mySQL的性能要好得多(至少在广泛使用方面)。有什么帮助吗

有趣的是:当我只连接到DB并在新的php脚本中执行此查询时,它工作正常,并且没有警告。不知道为什么会这样

已解决:
我不想在字符串中测试我的输入参数(相当蹩脚),因为我对自己正在做的事情非常自信无论你有多自信,都要逃避特殊角色(大声喊叫)

在我看来,您的输入字符串可能包含一个引号,这将打乱查询。您的错误也表明了这一点。您应该始终将所有可能的用户输入视为受污染的,并养成每次对其进行消毒的习惯,即使您认为不需要这样做

我创建了一个新的php脚本,并对3个参数进行了硬编码,查询运行良好

这也让我相信,在变量中的某个地方有一个引号或特殊字符,它正在打乱查询。您可能希望使用来更正此问题

$ITP_Status = mysql_real_escape_string($ITP_Status);
$ITP_Error = mysql_real_escape_string($ITP_Error);
$ID = mysql_real_escape_string($ID);
$query = mssql_query("UPDATE table_name SET C_ITP_STATUS = '".$ITP_Status."', C_ITP_ERRORS = '". $ITP_Error ."' WHERE id = '".$ID."';"); 
还应该注意,您使用的是旧的MySQL函数。新功能是替代品,也是您应该至少使用的功能


你提到了SQL女士。如果您打算使用它,就不能使用MySQLi函数。在这种情况下,建议您使用该接口,它将同时适用于MySQL和MS SQL。即使您只使用MySQL,也有很多人建议使用PDO而不是MySQLi。

在我看来,您的输入字符串可能包含引号,这会搞乱查询。您的错误也表明了这一点。您应该始终将所有可能的用户输入视为受污染的,并养成每次对其进行消毒的习惯,即使您认为不需要这样做

我创建了一个新的php脚本,并对3个参数进行了硬编码,查询运行良好

这也让我相信,在变量中的某个地方有一个引号或特殊字符,它正在打乱查询。您可能希望使用来更正此问题

$ITP_Status = mysql_real_escape_string($ITP_Status);
$ITP_Error = mysql_real_escape_string($ITP_Error);
$ID = mysql_real_escape_string($ID);
$query = mssql_query("UPDATE table_name SET C_ITP_STATUS = '".$ITP_Status."', C_ITP_ERRORS = '". $ITP_Error ."' WHERE id = '".$ID."';"); 
还应该注意,您使用的是旧的MySQL函数。新功能是替代品,也是您应该至少使用的功能


你提到了SQL女士。如果您打算使用它,就不能使用MySQLi函数。在这种情况下,建议您使用该接口,它将同时适用于MySQL和MS SQL。即使您只使用MySQL,也有许多人建议PDO优于MySQLi。

您是否正确地转义了查询参数?如果任何查询包含
字符,它将中断您的查询。我尝试
回显该查询,结果显示良好!所以,我想我的问题是正确的。并在最后两行中查看我的更新!你能发布查询吗,很可能是你的参数有问题。我已经发布了查询!除了连接到数据库之外,第375行是我在整个脚本中使用的唯一查询。我创建了一个新的php脚本,并对3个参数进行了硬编码,查询运行良好!:(查询本身不是问题,问题在于连接到查询中的变量。如果您完整地回显查询,您应该看到MSSQL中正在运行什么。您是否正确地转义了查询参数?如果任何查询参数包含
字符,它将中断您的查询。我尝试了
回显
查询它显示得很好!因此,我认为我有正确的查询。在最后两行中看到我的更新!你能发布查询吗,这很可能是你的参数有问题。我发布了查询!除了连接到DB之外,第375行是我在整个脚本中使用的唯一查询。我创建了一个新的php脚本并硬编码了第3段米,查询运行正常!:(查询本身不是问题,问题在于连接到查询中的变量。如果您完整地回显查询,您应该看到MSSQL中运行的是什么。没有真正使用PDO。我暂时坚持这一点,因为这是一个非常简单的查询,这是我需要做的所有事情!我没有逃脱特殊的c。)虽然是字符。我在一个被推入的值中有一个“a”!谢谢你的帮助…没有真正使用PDO。我暂时坚持这个,因为这是一个非常简单的查询,这就是我需要做的一切!但是我没有逃避这个特殊字符。我在一个被推入的值中有一个“a”!谢谢你的帮助。。.