将整个HTML代码插入内容表

时间:2016-10-26 19:29:07

标签: php mysql

我正在尝试使用大约1200行的完整HTML代码更新内容数据库(Joomla)的介绍字段。

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注入攻击,我希望我解决了。

感谢您的支持

此致

劳伦

2 个答案:

答案 0 :(得分: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

传递可写目录

答案 1 :(得分:0)

对不起该帖子。我后来才意识到,我在

中输入了一个拼写错误
"UPDATE jso_content SET introtext = :INTRO WHERE alias = :ALIAS"

这应该是bw

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

更改后,脚本通过了。

无论如何,谢谢你的评论 干杯 劳伦