0

我对显示 sqlite 数据库并可以编辑某些值的 php 页面有一点问题。我的问题是短字符串写入我的数据库,而大字符串未写入数据库。这是我的代码:(我认为有很多错误,但我不知道 php :()

<div id="editor">

        <?php
            if($_POST['NewText']){  
                $textNew = $_POST['textAreaTesto'];

                $db->exec("UPDATE Argomenti_".$_SESSION[sessioneMateria]." SET Testo='".$textNew."' WHERE ID='".$idTestoSelezionato."'");   

                echo ("UPDATE Argomenti_".$_SESSION[sessioneMateria]." SET Testo='testo' WHERE ID='".$idTestoSelezionato."'");  
            }
        ?>

        <form name="form" method="post" action="<?php echo $PHP_SELF;?>">
            <textarea id="textAreaTesto" name="textAreaTesto" cols=50 rows=30><?php echo $TestoSelezionato;?></textarea>
            <input type="submit" name="NewText" class='btn' value="invia testo">
        </form>

    </div>
4

1 回答 1

1

您可以(并且应该)利用准备好的语句:

$textNew = $_POST['textAreaTesto'];

$stmt = $db->prepare("UPDATE `Argomenti_{$_SESSION['sessioneMateria']}` 
    SET Testo=:text
    WHERE ID=:id");   

$stmt->execute(array(
    ':text' => $textNew,
    ':id' => $idTestoSelezionato,
));

请注意,如果$_SESSION['sessioneMateria']填充了用户提交的值,您应该对其进行清理(即确保它仅包含字母等)。

于 2012-11-20T23:24:12.533 回答