2011-10-12 28 views
22

Vì vậy, tôi chỉ học về cơ sở dữ liệu và tôi muốn để có thể lưu trữ đầu vào của người dùng. Ai đó có thể cho tôi một ví dụ cơ bản về cách lấy dữ liệu biểu mẫu và lưu nó vào cơ sở dữ liệu bằng php? Cũng làm cho hình thức an toàn khỏi sự tấn công sqllàm thế nào để chèn vào mysql bằng cách sử dụng tuyên bố chuẩn bị với php

+0

Kiểm tra PDO: http://www.phpro.org/tutorials/Introduction-to-PHP-PDO.html. 1 cho muốn tìm hiểu để làm điều đó đúng. :) – Herbert

+0

Cũng trong hướng dẫn sử dụng php http://php.net/manual/en/pdo.prepared-statements.php –

Trả lời

22

sample.html

<form action="sample.php" method="POST"> 
<input name="sample" type="text"> 
<input name="submit" type="submit" value="Submit"> 
</form> 

sample.php

<?php 

if (isset($_POST['submit'])) { 

    $mysqli = new mysqli('localhost', 'user', 'password', 'mysampledb'); 

    /* check connection */ 
    if (mysqli_connect_errno()) { 
     printf("Connect failed: %s\n", mysqli_connect_error()); 
     exit(); 
    } 

    $stmt = $mysqli->prepare("INSERT INTO SampleTable VALUES (?)"); 
    $stmt->bind_param('s', $sample); // bind $sample to the parameter 

    $sample = isset($_POST['sample']) 
       ? $_POST['sample'] 
       : ''; 

    /* execute prepared statement */ 
    $stmt->execute(); 

    printf("%d Row inserted.\n", $stmt->affected_rows); 

    /* close statement and connection */ 
    $stmt->close(); 

    /* close connection */ 
    $mysqli->close(); 
} 

?> 

Đây là một ví dụ rất cơ bản. Nhiều nhà phát triển PHP hiện nay đang chuyển sang PDO. Mysqli isn ’ t lỗi thời, nhưng PDO là nhiều dễ dàng hơn, IMHO.

+5

'real_escape_string()' là thừa. Toàn bộ điểm sử dụng các câu lệnh chuẩn bị là tránh phải thoát khỏi các giá trị theo cách thủ công. –

Các vấn đề liên quan