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 に答える