sql >> データベース >  >> RDS >> Mysql

送信ボタンでデータベースデータを更新

    関数ではなく、フォーム処理を行うaction属性内にURLを配置する必要があります:

    action="<?php updater($_POST['name'],1); ?>"  // not this
    action="<?php echo $_SERVER['PHP_SELF']; ?>" // path to this page
    

    これが同じページにある場合は、それを省略するか、$_SERVER['PHP_SELF']を使用できます。 、フォームの送信をキャッチします。そのプロセス内で、カスタム関数を呼び出します。

    if($_SERVER['REQUEST_METHOD'] === 'POST') {
        $value = $_POST['name'];
        $id = 1;
    
        updater($value, $id);
    }
    

    簡単な修正は、その中の文字列を引用することです:

    $sql = "UPDATE table_name SET name='$value' WHERE id=$id";
    

    しかし、これはSQLインジェクションに開かれています。より安全なクエリを実行する別の方法は、それらを準備することです。

    function updater($value,$id) {
        // Create connection
       $conn = new mysqli( 'localhost' , 'user_name' , '' , 'data_base_name' );
        // Check connection
       if ($conn->connect_error) {
           die("Connection failed: " . $conn->connect_error);
       }
       $sql = "UPDATE table_name SET name = ? WHERE id= ?";
       $update = $conn->prepare($sql);
       $update->bind_param('si', $value, $id);
       $update->execute();
       if ($update->affected_rows > 0) {
           echo "Record updated successfully";
       } else {
           echo "Error updating record: " . $conn->error;
       }
    }
    


    1. MySQL-同じテーブルの行に基づいて列の値を合計します

    2. MicrosoftAccessでフォームを作成するための10のテクニック

    3. pgAdminを使用してPostgresqlテーブルデータをエクスポートする

    4. MySQLからの読み取りが高速ですか、それともファイルからの読み取りが高速ですか?