2016-04-23 21 views
-1

apacheサーバー上のlocalhostに以下のPHPコードを使用していますが、エラーは表示されず、HTMLフォームでデータを送信したときにすべてがうまくいくように見えますが、データはphpmyadminテーブル。誰でも助けることができますか?送信されたデータはphpmyadminに保存されません

<?php 
$servername = 'localhost'; 
$username = 'root'; 
$password = 'xxxx'; 
$database = 'newtable'; 
$con = mysqli_connect("$servername","$username","$password","$database"); 
if (! $con){ 
    die('Could not connect: ' . mysqli_error()); 
} 
$sql = "INSERT INTO newtable (firstname, lastname) VALUES ('$_POST[firstname]', '$_POST[lastname]')"; 
if (! $sql) 
{ 
    die('Error: ' . mysqli_error()); 
} 
echo "Record Added Successfully!"; 
mysqli_close($con); 
?> 

とhtmlコードは次のとおりです。

<html> 
<body> 
    <form action="insert.php" method="post"> 
     Firstname: <input type="text" name="firstname" /><br><br> 
     Lastname: <input type="text" name="lastname" /><br><br> 
     <input type="submit" /> 
    </form> 
</body> 
</html> 
+2

下記の回答にお答えください。 –

答えて

0

あなたは自分のクエリが、それは

$sql = "INSERT INTO newtable (firstname, lastname) VALUES ('".$_POST['firstname']."', '".$_POST['lastname']."')"; 
$result=mysqli_query($con,$sql);// execute it 

if (! $result) 
{ 
die('Error: ' . mysqli_error($con));// need to pass connection as parameter 
} 

http://php.net/manual/en/mysqli.error.php

を読んで実行することを忘れ書きます

あなたのクエリを実行するのを忘れて、あなたのINSERTクエリを実行しませんでした

$firstname = $_POST['firstname']; 
$lastname = $_POST['lastname']; 

$sql = "INSERT INTO newtable (firstname, lastname) VALUES (?, ?)"; 
$stmt = $con->prepare($sql); 

$stmt->bind_param("ss", $firstname, $lastname); 
$stmt->execute(); 
+3

私は今日よりも速いタイで、よく遊んだ! – Webeng

1

を防ぐためにバインドステートメントを使用することをお勧めステートメントはどこにでもあるので、データは追加されませんでした。

線の下に置き換えます

if (! $sql) 
{ 
die('Error: ' . mysqli_error()); 
} 

if ($mysqli->query($con, $sql) !== TRUE) 
{ 
die('Error: ' . mysqli_error($con)); 
} 
+2

より安全なフォームに修正してください! – Saty

0

以下のように準備されたステートメントを使用してくださいフォームSQLインジェクション

$sql = "INSERT INTO newtable (firstname, lastname) VALUES (?, ?)"; 
$stmt = $con->prepare($sql); 

$stmt->bind_param("ss", $firstname, $lastname); 
$stmt->execute(); 
+0

'mysqli_error());'接続としてパラメータが必要 – Saty

+0

@Saty、ありがとう、私は私の答えを更新しました。 –

+0

正しくない!あなたのconnectin変数を確認してください – Saty

-1
<?php 
$servername = 'localhost'; 
$username = 'root'; 
$password = ''; 
$database = 'newtable'; $con = mysqli_connect("$servername","$username","$password","$database"); 
if (! $con){ die('Could not connect: ' . mysqli_error()); } 
$sql = "INSERT INTO yourTableName (firstname, lastname) VALUES ('".$_POST['firstname']."', '".$_POST['lastname']."')"; 
if (! $sql) { die('Error: ' . mysqli_error()); } echo "Record Added Successfully!"; mysqli_close($con); 
?> 

であなたがローカルホストを使用している場合は、DBのパスワードは、デフォルトでは空白で、あなたは自分のテーブル名を与える必要がありますクエリを挿入します。

0

は、あなたの答えのためのみんなに感謝し、それは

私は$結果= mysqli_query($詐欺、$ sqlを)を追加するために必要なすべてを働きました。

これはプログラムの実行ですか?

関連する問題