1

PHP を使用して、HTML テキスト フィールドからデータベースにデータを更新しようとしています。通知フィールドを更新したいと思います。テキスト フィールドの値を SQL クエリに取得できません。これが私のコードです:

$result = mysql_query($query) or die (mysql_error()); // Run query
    while($row = mysql_fetch_array($result)) { ?> 
        <tr><td><?php echo $row[0];?></td>      
        <td><?php echo $row[1];?></td>
        <td><?php echo $row[2];?></td>
        <td><?php echo $row[3];?></td>
        <td><?php echo $row[4];?></td>
        <td><input type="text" name="notifications" value="<?php echo $row[5];?>" size=13></td></tr>
<?php 
if (isset($_POST['save'])) { 
    for($i = 0; $i < $count; $i++) // For loop
    {
        $id=mysql_result($result,$i,"id"); // Get id from query
        $notifications = $_POST['notifications'];
        $update = "UPDATE testtable SET notifications = {$notifications[$i]} WHERE id = {$id}";
        echo "$update<br>";
        //mysql_query($update); // Run
    } 
4

1 に答える 1

0

通知フィールドは文字列である可能性が高いため、次のように引用符でエスケープする必要があります。

$update = "UPDATE testtable SET notifications = '{$notifications[$i]}' WHERE id = {$id}";

コードはインジェクション攻撃に対して非常にオープンです。潜在的な攻撃を防ぐために、準備されたステートメントを使用し、PDO または msqli に移行する必要があります。

于 2012-07-25T14:06:16.750 に答える