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 に答える