Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Cập nhật dữ liệu cơ sở dữ liệu bằng nút gửi

Bạn cần đặt URL bên trong thuộc tính action xử lý biểu mẫu, không phải hàm:

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

Nếu điều này nằm trên cùng một trang, bạn có thể bỏ qua hoặc sử dụng $_SERVER['PHP_SELF'] , sau đó bắt gửi biểu mẫu. Bên trong quy trình đó, sau đó gọi hàm tùy chỉnh của bạn.

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

    updater($value, $id);
}

Một cách khắc phục dễ dàng chỉ là trích dẫn chuỗi bên trong nó:

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

Nhưng điều này là mở cho SQL injection, một cách khác để thực hiện các truy vấn an toàn hơn là chuẩn bị chúng:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm thế nào để ĐẶT HÀNG BẰNG trường varchar dưới dạng số?

  2. Làm cách nào để đặt bí danh cơ sở dữ liệu trong MySQL?

  3. Làm cách nào để xuất cơ sở dữ liệu MySQL sang JSON?

  4. LỖI 1044 (42000):Quyền truy cập bị từ chối đối với người dùng '' @ 'localhost' vào cơ sở dữ liệu 'db'

  5. Làm thế nào để bạn buộc mysql LIKE phải phân biệt chữ hoa chữ thường?