简体   繁体   中英

Unable to insert data in mysql table via php

I am unable to inset data into mysql table. What is wrong with my code? Here is the php code i have used. I am getting no response on submission. The php is used in the same page the html form is included so, my attributes are action="" and method="post". Please help. enter code here

<?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...";   
            }
            }
}
?>

As Alex.Barylski pointed out in a comment, an INSERT statement creates a new row, so you cannot use a WHERE clause (which is used to examine an existing row...). If you want to update a row which already exists, use the following instead of your INSERT statement:

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

Note also that you can use mysql_affected_rows() to check whether your UPDATE query was successful, see this question: How do I tell when a MySQL UPDATE was successful versus actually updated data?

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM