2016-10-26 38 views
1

我試圖用大約1200行長的整個HTML代碼更新內容DB(Joomla)的介紹字段。將整個HTML代碼插入到內容表中

try { 
     $MyDBConn = new PDO("mysql:host=localhost;port=3306;dbname=$MyDBName", $MyDBUser, $MyDBPass); 
     // PDO can throw exceptions rather than Fatal errors, so let's change the error mode to exception 
     $MyDBConn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
     //$MySQL = "UPDATE jso_content SET introtext = '$MyTeamHTML_FR' WHERE titel like '%$MyTeamTitel' and alias like '%$MyTeamAlias'"; 
     $MySQL = "UPDATE jso_content SET introtext = :INTRO WHERE alias = :ALIAS"; 
     $MyStmt = $MyDBConn->prepare($MySQL); 
     $MyStmt->execute(array(':INTRO' => $MyTeamHTML_FR, ':ALIAS' => $MyTeamAlias)); 
    } 
    catch(PDOException $e) { 
     echo "Connection failed: " . $e->getMessage()."\n"; 
    } 
    $MyDBConn = null; 

該更新不會執行艱難,我不知道爲什麼。 當我通過PHPMyAdmin手動執行此操作時,我可以插入文本代碼。

我之前在帖子中使用過相同的語句,因爲在使用exec()而不是execute()時發生了錯誤,所以這個問題得到了解決。

另一個意見是SQL注入攻擊,我希望我解決了。

感謝您的支持

問候

洛朗

+0

什麼是錯誤訊息? –

+0

什麼是錯誤? – Sharlike

+0

'execute()'的結果是什麼? – chris85

回答

0

對不起,這個職位。我意識到以後最後的威力,我在

"UPDATE jso_content SET introtext = :INTRO WHERE alias = :ALIAS" 

這裏有一個錯字這應該BW

"UPDATE jos_content SET introtext = :INTRO WHERE alias = :ALIAS" 

改變它之後,通過腳本。

無論如何,感謝您的意見 乾杯 洛朗

0

我改變你的代碼一點點,並添加代碼記錄異常。這將幫助您在發生錯誤時進行調試並解決問題。

try { 
    $MyDBConn = new PDO("mysql:host=localhost;port=3306;dbname=$MyDBName", $MyDBUser, $MyDBPass); 
    // PDO can throw exceptions rather than Fatal errors, so let's change the error mode to exception 
    $MyDBConn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
    //$MySQL = "UPDATE jso_content SET introtext = '$MyTeamHTML_FR' WHERE titel like '%$MyTeamTitel' and alias like '%$MyTeamAlias'"; 
    $MySQL = "UPDATE jso_content SET introtext = :INTRO WHERE alias = :ALIAS"; 
    $MyStmt = $MyDBConn->prepare($MySQL); 
    $MyStmt->execute(array(':INTRO' => $MyTeamHTML_FR, ':ALIAS' => $MyTeamAlias)); 
} 
catch(PDOException $e) { 
    $h = fopen('<path_to_a_writable_dir>/error.log', 'a+'); 
    fwrite($h, var_export($e, true)); 
    echo "Connection failed: " . $e->getMessage()."\n"; 
} 
$MyDBConn = null; 

確保通過可寫目錄爲path_to_a_writable_dir

+0

我知道。日誌記錄是我的弱點,即使我不願意,我也會忘記...... :-) –