2012-09-09 3 views
0

이전에 작동했던 PHP MSSQL 쿼리가 있습니다. 쿼리와 관련이없는 것으로 보이는 요소가 변경되었으므로 오류가 발생하기 시작했습니다.PHP 구문 오류 error

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

내가 그것을 확인했다 :

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이 라인은 다음과 같습니다

<?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'); 
} 
} 
?> 

던지기 시작되는 오류가 있습니다 : 여기

쿼리입니다 다른 영역에서 비슷한 구문을 사용하고 있습니다. 누구든지 그것이 틀린 곳을 볼 수 있습니까?

+0

'$ query_sql '에 구문 오류가 있습니다. 그것을 에코 할 수 있습니까? – Tchoupi

+0

예, 올바르게 반향하는 것 같습니다. 그것은 에코 : UPDATE Database_Table SET PageHTML = ('텍스트 영역의 내용) WHERE PageID ='1 ' – Bohdi

+0

** 당신의 오류 **는''textarea'의 내용입니다 : p'$ PageHTML'을 이스케이프해야합니다. 오류 및 주사. – Tchoupi

답변

0

당신은 데이터베이스에 HTML 코드를 추가하려고하는데 따옴표와 특수 기호에 문제가 있습니다. 예, 당신은 sprintf()을하고 있다고 말할 수는 있지만 그 함수는 sql 구문 문제를 해결하지 못합니다. 예를 들어 addslashes(을 시도하십시오.) 그렇지 않으면 php 함수를 살균하십시오.

+0

데이터를 가져 와서 표시하는 프론트 엔드 코드를 제어 할 수 없기 때문에 addslashes를 구현할 수 없습니다. through, 나는 슬래시를 제거 할 방법이 없다 ... – Bohdi

+0

그래서 잘못된'sql' 구문 데이터를 삽입하고 싶습니까? 문제가 발견되었습니다 - SQL 쿼리 구문이 잘못되었습니다. 이를 해결하는 방법은 두 가지가 있습니다. 1. addslashes (또는 기타) 위생 기능을 사용하십시오. 2. [PDO] (http://php.net/manual/pdo.prepared-statements.php)를 사용하십시오. – StasGrin