2017-03-05 10 views
0

mysqlテーブルにデータを挿入できません。私のコードで何が間違っていますか? ここで私が使用しているPHPコードです。私は提出に関して何の応答も得ていない。 phpはhtmlフォームが含まれている同じページで使用されていますので、私の属性はaction = ""とmethod = "post"です。助けてください。 enter code herePHPを使用してmysqlテーブルにデータを挿入できません

<?php 
    ob_start(); 
    session_start(); 
    require_once 'dbconnect.php'; 

    // if session is not set this will redirect to login page 
    if(!isset($_SESSION['user'])) { 
     header("Location: index.html"); 
     exit; 
    } 
    // select loggedin users detail 
    $res=mysql_query("SELECT * FROM users WHERE userId=".$_SESSION['user']); 
    $userRow=mysql_fetch_array($res); 


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

     // clean user inputs to prevent sql injections 
     $name1 = $_POST['name1']; 
     $name2 = $_POST['name2']; 
     $name3 = $_POST['name3']; 
     $name4 = $_POST['name4']; 
     $name5 = $_POST['name5']; 
     $name6 = $_POST['name6']; 
     $name7 = $_POST['name7']; 
     $name8 = $_POST['name8']; 
     $name9 = $_POST['name9']; 


     if(!$error) { 

      $query = "INSERT INTO users(name1,name2,name3,name4,name5,name6,name7,name8,name9) VALUES('$name1','$name2','$name3','$name4','$name5','$name6','$name7','$name8','$name9') WHERE userId=".$_SESSION['user']; 
      $res = mysql_query($query); 

      if ($res) { 
       $errTyp = "success"; 
       $errMSG = "Successfully registered, you may login now"; 
       unset($name1); 

      } else { 
       $errTyp = "danger"; 
       $errMSG = "Something went wrong, try again later..."; 
      } 
      } 
} 
?> 
+0

ちょうど注記:SQLインジェクションを止めるために何もしないで、何もしないでください。すぐにパラメータを使用してください。 –

+0

最初のコメントは2番目ですが、学習していてこれが制作に向かない場合は、最初に私に飛び出したのは、INSERT後のWHEREです。存在しないものの基準をどのように指定しますか? INSERTでない場合はWHEREを使用します –

+0

私は理解のためだけにコードを単純化しています。しかし、まだそれは動作していません –

答えて

0

Alex.Barylskiコメントで指摘したように、あなたが(既存の行を検査するために使用されています...)WHERE句を使用することはできませんので、INSERT文は、新しい行を作成します。あなたは既に存在している行を更新したい場合は、代わりにINSERT文の次を使用します。また、あなたのUPDATEクエリが成功したかどうかを確認するためにmysql_affected_rows()を使用することができ

 $query = 'UPDATE users SET name1 = "$name1", name2 = "$name2", name3 = "$name3" WHERE userId=' . $_SESSION['user']; 

注意を、この質問を参照してください。How do I tell when a MySQL UPDATE was successful versus actually updated data?

関連する問題