0

我有一个以前工作的 PHP MSSQL 查询,但是自从我更改了一个似乎与查询无关的元素后,它开始抛出错误。

这是查询:

<?php 
if (isset($_POST['paper'])) {

$PageHTML = $_POST['ckeditor'];
$PageID = $_GET['id'];

$myServer = "**.***.***.**";
$myUser = "username";
$myPass = "password";
$myDB = "database";

$dbhandle = mssql_connect($myServer, $myUser, $myPass)
or die("Couldn't connect to SQL Server on $myServer"); 
mssql_select_db($myDB) or die;

$dbTABLE = "Table_Name";
$query_sql = sprintf("UPDATE %s SET PageHTML = ('%s') WHERE PageID = '%d'",
$dbTABLE,
$PageHTML,
$PageID); 

if ($result = mssql_query($query_sql, $dbhandle)) {
header('Location: Manage.php');
}
}
?>

错误已开始抛出如下:

Warning: mssql_query() [function.mssql-query]: message: Incorrect syntax near 're'.   (severity 15) in (file path) on line 59

Warning: mssql_query() [function.mssql-query]: message: Unclosed quotation mark after  the character string '</p> </div> </td> </tr> </tbody> </table>') WHERE PageID = '2''.   (severity 15) in (file path) on line 59

第 59 行是这一行:

if ($result = mssql_query($query_sql, $dbhandle)) {

我已经检查过了,并在其他领域使用了类似的语法。谁能看出哪里错了?

4

1 回答 1

0

您正在尝试将 HTML 代码添加到数据库中,但引号和特殊符号存在问题。是的,你可以说你正在做sprintf(),但该功能不能解决sql语法问题。例如尝试addslashes()或清理 php 函数。

于 2012-09-09T15:04:50.327 回答