2011-10-12 4 views
22

私はデータベースについて学んでいるので、ユーザの入力を保存したいと思っています。誰かが私にフォームデータを取得し、PHPを使用してデータベースに保存する方法の基本的な例を教えてもらえますか?またPrepared Statement with phpを使用してmysqlに挿入する方法

<?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(); 
} 

?> 

をsample.php

+0

PDO:http://www.phpro.org/tutorials/Introduction-to-PHP-PDO.htmlを参照してください。それを正しく行うことを学ぶことを望むための+1。 :) – Herbert

+0

PHPマニュアルhttp://php.net/manual/en/pdo.prepared-statements.php –

答えて

22

sample.html

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

SQL攻撃からフォームを安全にすることは、これは非常に基本的な例です。今日のPHP開発者の多くはPDOになっています。 Mysqli is ’は廃止されましたが、PDOはです。 easy、IMHOです。

+5

'real_escape_string()'も余分です。プリペアドステートメントを使用することの全ポイントは、値を手動でエスケープする必要がないようにすることです。 –

関連する問題