2010-12-05 5 views
0

私は、このHTMLフォームのページがあります:フォームを処理するために、このPHPスクリプトに転送しPHP MySQLの説明できないNull値 - すべての値を1つのレコードに挿入するには?

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" 
    "http://www.w3.org/TR/html4/strict.dtd" 
    > 
<html lang="en"> 
<head> 
    <title>Insert Your Details</title> 
</head> 
<body> 
    <h3> Insert Your Name</h3> 
    <form action="form1.php" method="post"> 
    First Name: <input type="text" name="fname"><br> 
     Last Name: <input type="text" name="lname"><br> 
    E-mail: <input type="text" name="mail"><br> 
      <input type="Submit" value="Submit" name="Submit"> 
    </form> 
</body> 
</html> 

form1.html

<?php 
$connection = mysql_connect("localhost","root","") 
or die ("Couldn't Connect To Server"); 
$db = mysql_select_db("db1", $connection) 
or die ("Couldn't Select Database"); 
$query = "CREATE TABLE IF NOT EXISTS table1 (Name VARCHAR(20))"; 
$result = mysql_query($query) 
or die ("Query Failed: " . mysql_error()); 
$query = "INSERT INTO table1 (fname) VALUES ('".$_POST[fname]."')"; 
$result = mysql_query($query) 
or die ("Query Failed: " . mysql_error()); 
$query = "INSERT INTO table1 (lname) VALUES ('".$_POST[lname]."')"; 
$result = mysql_query($query) 
or die ("Query Failed: " . mysql_error()); 
$query = "INSERT INTO table1 (mail) VALUES ('".$_POST[mail]."')"; 
$result = mysql_query($query) 
or die ("Query Failed: " . mysql_error()); 
$query = "SELECT * FROM table1"; 
$result = mysql_query($query) 
or die ("Query Failed: " . mysql_error()); 
    echo "<TABLE BORDER = '1'>"; 
    echo "<TR>"; 
    echo "<TH>First Name</TH>"; 
    echo "</TR>";  
while ($row = mysql_fetch_array($result)) 
    { 
echo "<TR>"; 
echo "<TD>", $row['fname'], "</TD><TD>", 
$row['lname'], "</TD><TD>", 
$row['mail'], "</TD>"; 
echo "</TR>"; 
    } 
    echo "</TABLE>"; 
    mysql_close($connection); 
?> 
form1.php

何らかの理由で、これらのvalを挿入するとues:

First Name: Wide 
Last Name: Blade 

私はMySQLテーブルに多くのNULL値を取得します。

私の質問は次のとおりです。これらの値をすべて同じレコードに挿入すると、これらのNULLレコードがテーブルに追加されません。

+0

@ajreal編集がわかりません...説明していますか? – t0mgs

+0

@WideBlase - 挨拶を切って、あなたの質問に助けにならないでください – ajreal

+0

@ajreal - 今後これから行います。ありがとう。 – t0mgs

答えて

2

insertはデータベースに新しいレコード(行)を追加します。insert文を1回だけ実行したいだけです。

INSERT INTO table1(fname, lname, mail) VALUES ($fname, $lname, $mail); 

UPDATE:また、入力をエスケープするか、プリペアドステートメントを使用してSQLインジェクションから保護する必要があります。

+0

OKフレディー - 私はすべてを一つのレコードに変更しました。 – t0mgs

+0

このエスケープ入力とは何ですか?それについて読むのに良い何かを参照するように気をつけますか? – t0mgs

+0

@WideBlade - http://php.net/manual/en/function.mysql-real-escape-string.php – ajreal

関連する問題