开发者

Unable to update database using php

I have a the following code for inputing data in 开发者_JAVA百科a database..i specifically echoed the values to see whether they have correct values or not...they have correct values but the values i get in the database are totally different.

Here is my code

    <?php
    $con = mysql_connect("localhost","root","");
    if (!$con)
      {
      die('Could not connect: ' . mysql_error());
      }

    mysql_select_db("sm_sample");
    $source=$_POST['source'];
    $username=$_POST['username'];
    $location=$_POST['location'];
    $category=$_POST['category'];
    $complaint=$_POST['complaint'];
    $status=$_POST['status'];
    $date=$_POST['date'];
    echo $source.$username.$location.$category.$complaint.$status.$date;

    $sql="INSERT INTO sample VALUES(ID=NULL,source='$source',username=
            '$username', location='$location', category='$category',complaint=
            '$complaint',date='$date',status='$status')";
    if (!mysql_query($sql,$con))
      {
      die('Error: ' . mysql_error());
      }
    echo "1 record added";
    echo "<BR>";
    echo "<a href='usercom1.php'>View result</a>";
    mysql_close($con)
    ?> 

the values i get in the database r like this: List data from mysql

Source Username  Location   Category Complaint     Date      Status     Update 
 0     Singapore                0    0000-00-00    Pending      Edit 


The correct syntax:

$sql="INSERT INTO `sample`(`ID`,`source`,`username`, `location`,`category`,`complaint`,`date`,`status`) 
      VALUES (0, '$source','$username','$location','$category','$complaint','$date','$status')";

later edit ... you are using wrong mysql_query and connection syntax

$con = mysql_connect("localhost","root","") or die('database connection?');
mysql_select_db("sm_sample", $con) or die('wrong database?');
// and for $_POST you sould use mysql_real_escape_string
$source = mysql_real_escape_string($_POST['source']);
// ........................................
$sql="INSERT INTO `sample`(`ID`,`source`,`username`, `location`,`category`,`complaint`,`date`,`status`) 
      VALUES (0, '$source','$username','$location','$category','$complaint','$date','$status')";
mysql_query($sql) or die('Error: '.mysql_error().': '.mysql_errno());
// ........................................
mysql_close($con);


<?php
    $con = mysql_connect("localhost","root","");
    if (!$con)
      {
      echo ('Could not connect: ' . mysql_error());
      }

    mysql_select_db("sm_sample",$con);
    $source=$_POST['source'];
    $username=$_POST['username'];
    $location=$_POST['location'];
    $category=$_POST['category'];
    $complaint=$_POST['complaint'];
    $status=$_POST['status'];
    $date=$_POST['date'];
    echo $source.$username.$location.$category.$complaint.$status.$date;

    $sql="INSERT INTO sample ('source','username','location','category','complaint','status') VALUES('$source','$username','location','category','complaint','status' )";
    if (!mysql_query($sql))
      {
        echo ('Error: ' . mysql_error());
      }
    echo "1 record added";
    echo "<BR>";
    echo "<a href='usercom1.php'>View result</a>";
    mysql_close($con);
    ?> 

First thing you do not have to add id if it is auto increment and date if it uses current timestamp and one more thing that never use die(); , use echo instead.


You should provide only VALUES of data with no column names:

$sql="INSERT INTO sample VALUES(ID, '$source', '$username', '$location', '$category', '$complaint', '$date', '$status')";

Also if you have only one DB connection you can not to define $con variable in mysql_query(). Like this: mysql_query($sql).


The problem is with the following line:

<?php
$sql="INSERT INTO sample VALUES(ID=NULL,source='$source',username='$username', location='$location', category='$category',complaint=
'$complaint',date='$date',status='$status')";
?>

If you check the result in the database, you'll see that the values are getting in the wrong order, use this instead:

<?php
$sql="INSERT INTO sample(ID, source, username, location, category, complaint, date, status)  VALUES(NULL, '$source', '$username', '$location', '$category', '$complaint','$date','$status')";
?>

PLEASE read what Albireo posted in his comment. Your code is extremely vulnerable.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜