简体   繁体   中英

php mysql form not inserting Data

I got a project and got struck with values not passing to database.Have excluded html structure kept only for city state country.My code is shown here. Please note I have separate tables for country state city. I am using WAMP server.

    ============Database conn=============
<?php

$db= mysqli_connect('localhost', 'root','' , 'test' );

if(!$db) {
    echo mysqli_error($db);
    return;
}

echo 'Connection OK';
?>

=============Table - cust ================
`SNo`, `Customer Id`, `Card`, `First Name`, `Last Name`, `Gender`, `DOB`, `Age`, `Mobile`, `Address`, `Email Id`, `C Type`, `RefrenceId`, `Country`, `State`, `City`, `entry_date`

==========================
<?php
      include_once('db.php');
      session_start();

if(isset($_POST['submit'])) {
    $CustomerID = mysqli_real_escape_string($db ,$_POST['cid']);
    $Card = mysqli_real_escape_string($db ,$_POST['ccode']);
    "
    "
    "
    "
    $City = mysqli_real_escape_string($db ,$_POST['city']);

    $sql = "INSERT INTO cust 
VALUES('','$CustomerID','$Card','$FirstName','$LastName','$Gender','$DOB','$Age','$Mobile','$Address','$EmailId','$Ctype','$RefrenceId','$Country','$State','$City','".date("Y-m-d")."')";

    $query  = mysqli_query($db,$sql);

    if(!$query)
           echo mysqli_error();
    else       
        echo "<script> alert('Data inserted Successfully'); 
  </script>"; header('location:ow.php'); 
 }
?>
===============================================
<?php
include_once('db.php');
$DB_host = 'localhost';
$DB_user = 'root';
$DB_pass = '';
$DB_name = 'db';

try
{
$DB_con = new PDO("mysql:host={$DB_host};dbname={$DB_name}",$DB_user,$DB_pass);
$DB_con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch(PDOException $e)
{
$e->getMessage();
}
?>

<form  action="new_1.php" method="post" name="a" onsubmit="return validateForm();"><table width="102%" border="0">
<thead>
    <input type="text" name="cid" class="text-input"  value="<?php echo $rw; ?>" AUTO_INCREMENT="on" readonly="true"  />
    <input type="text" name="ccode" class="text-input"  value="<?php echo $number; ?>"  readonly="readonly"/>
    <input type="text" name="fname"  id="fname" class="text-input" onchange="toTitleCase(this)" />
    <input type="text" name="lname" id="lname" class="text-input" onchange="toTitleCase(this)" />
    <select name="gen" >
        <option value="Male">Male</option>
        <option value="Female">Female</option>
      </select>

    <input type="text"  id="dob" name="dob" class="tcal tcalinput" onfocus="test();" onblur="setAge();" onkeyup="this.onblur();" onpaste="this.onblur();" oninput="this.onblur();" value="<?php echo date("Y-m-d"); ?>"/>
      <input type="text" name="mob1" class="text-input" maxlength="10" />
      <textarea  name="add"  style="height:22" ></textarea>
      <select id="ctype" name="ctype" style="width:36mm" >
<option value="Select">Select</option>
<option value="Student">Student</option>
<option value="Employee">Employee</option>
<option value="Doesn'tMatter">Doesn'tMatter</option>
<option value="Accounting,Banking,Finance">Accounting,Banking,Finance</option>
</select></td>
       <input type="text" id="refno" name="refno" class="text-input"/>
       <td>Country</td>
      <td><span class="desc1">
<select name="country" class="country">
<option selected="selected">--Select Country--</option>
<?php
$stmt = $DB_con->prepare("SELECT * FROM country");
$stmt->execute();
while($row=$stmt->fetch(PDO::FETCH_ASSOC))
{
?>
        <option value="<?php echo $row['country_id']; ?>"><?php echo $row['country_name']; ?></option>
        <?php
} 
?>
</select></td>
<td>State</td>
      <td><span class="desc1">
<select name="state" class="state">
<option selected="selected">--Select State--</option>
</select></td></tr>
    <tr>
      <td>City</td>
      <td><span class="desc1">
<select name="city" class="city">
<option selected="selected">--Select City--</option>
</select> </td>        </tr> 

    <input type="submit" id="submit" name="submit" value="Submit"></td>

          </form>
$sql = "INSERT INTO cust  VALUES('','$CustomerID','$Card','$FirstName','$LastName','$Gender','$DOB','$Age','$Mobile','$Address','$EmailId','$Ctype','$RefrenceId','$Country','$State','$City','".date("Y-m-d")."')";

In this part, your should not add a quote into all php variable ($country,$Address etc.) Otherwise, you will pass the text -'$something' instead of the value of $something

Here is an example.

$sql = "INSERT INTO cust VALUES(" 
       .$Mobile 
       .")";

echo $sql and try to run directly in mysql. Note: pass connection variable($db) in mysqli_error($db); Ex, if(!$query) echo mysqli_error($db);

AND,

'SNo' is auto increment column right? if so then use the below type insert statement

$sql = "INSERT INTO cust (`Customer Id`, `Card`, `First Name`, `Last Name`, `Gender`, `DOB`, `Age`, `Mobile`, `Address`, `Email Id`, `C Type`, `RefrenceId`, `Country`, `State`, `City`, `entry_date`) VALUES('$CustomerID','$Card','$FirstName','$LastName','$Gender','$DOB','$Age','$Mobile','$Address','$EmailId','$Ctype','$RefrenceId','$Country','$State','$City','".date("Y-m-d")."')";`

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