2014-04-01 92 views
1

我正在爲使用php的更新語句而苦苦掙扎。當變量$fltr中的字符串包含多個單詞時,會發生此問題。PHP中的MySql更新語句

$fltr ="Two Words or More"不起作用

$fltr="OneWordOnly"工作正常。

require_once( '包括/的init.php');

$Login = new Login($db); 

if(empty($_SESSION['logged'])) 
{ 
    $Login->_logout(); 
} 
if(isset($_SESSION['uid'])) 
{ 
    $userid=(int)$_SESSION['uid']; 
} 
$fltr = $_GET['filter']; 
$fltr= pg_escape_string($fltr); 
$deakt="D"; 

$updSQL="update class_products set FTP ='".$deakt."' where title ='".$fltr."' and owner =".$userid; 
$db->query($updSQL) or die ("Error in query: $updSQL " . mysql_error()); 

$txt='<textarea style="margin-left:250px;margin-top:110px; font-family:verdana:font-size:14px;color:#000;">Search filter {$fltr} is deactivated</textarea>'; 
$class_tpl->assign('txt', $txt); 

//now display the template 
$class_tpl->display('cbUpdate.tpl.php'); 

通常我會打印$ updSQL看到的問題是什麼,但我在一個燈箱變種利用這一點,並有調試問題。

任何幫助,高度讚賞。

+0

你會得到什麼錯誤?你確定有一個「兩字以上」標題的記錄嗎? –

+0

我真的很希望你的緣故,因爲大部分時間字符串連接都是[不是](http://bobby-tables.com/php)[http://bobby-tables.com/php] [http://bobby-tables.com/php] tables.com/)。 – tadman

+0

沒有收到錯誤消息,這是其中一個問題 – user2120143

回答

0

我的猜想是值urlencoded,你需要urldecode它,在逃脫之前。

+0

,但沒有改變: – user2120143

+0

$ FLTR = mysql_real_escape_string(urldecode($ FLTR)); – user2120143

+0

然後您需要從日誌中獲取錯誤消息和/或打印出'$ fltr'的實際值。 – xofer