无法使用php更新数据库

无法使用php更新数据库,php,mysql,database,phpmyadmin,Php,Mysql,Database,Phpmyadmin,我有一个在数据库中输入数据的代码..我专门回显了这些值以查看它们是否有正确的值..它们有正确的值,但我在数据库中得到的值完全不同 这是我的密码 <?php $con = mysql_connect("localhost","root",""); if (!$con) { die('Could not connect: ' . mysql_error()); } mysql_select_db("sm_sample");

我有一个在数据库中输入数据的代码..我专门回显了这些值以查看它们是否有正确的值..它们有正确的值,但我在数据库中得到的值完全不同

这是我的密码

    <?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)
    ?> 

您应该只提供不带列名的数据值:

$sql="INSERT INTO sample VALUES(ID, '$source', '$username', '$location', '$category', '$complaint', '$date', '$status')";
此外,如果只有一个DB连接,则不能在mysql\u查询中定义$con变量。如下所示:mysql\u query$sql。

正确的语法:

$sql="INSERT INTO `sample`(`ID`,`source`,`username`, `location`,`category`,`complaint`,`date`,`status`) 
      VALUES (0, '$source','$username','$location','$category','$complaint','$date','$status')";
稍后编辑。。。您使用了错误的mysql\u查询和连接语法

$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
$sql="INSERT INTO sample VALUES(ID=NULL,source='$source',username='$username', location='$location', category='$category',complaint=
'$complaint',date='$date',status='$status')";
?>
如果在数据库中检查结果,您将看到值的顺序错误,请改用以下方法:

<?php
$sql="INSERT INTO sample(ID, source, username, location, category, complaint, date, status)  VALUES(NULL, '$source', '$username', '$location', '$category', '$complaint','$date','$status')";
?>
请阅读Albereo在评论中发表的内容。您的代码极易受攻击

<?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);
    ?> 

首先,如果id是自动递增的,则不必添加id;如果使用当前时间戳,则不必添加日期;还有一件事永远不会使用die,改为使用echo。

为我们提供$\u POST的var\u dump或print\r,相应的MySQL rowi专门回显这些值,看看它们是否有正确的值,这很好。但是你转身问我们你的代码出了什么问题。但是我们看不到你的价值观!那么,我们该如何判断你的结果出了什么问题?!请阅读并确认。您的代码容易受到sql注入攻击@罗兰多:我不认为$_post有什么问题,因为我特别附和以检查它们是否正确values@vedant你应该查看关于as Webband的文档,这是对的。@Webband如果我没有得到你说的$con部分…我该怎么做?假设列的顺序是有风险的。如果不希望两个列表之间不匹配,请使用插入到。。。设置col=value,col=value语法。为什么要向下投票?只是为了好玩,或者你不喜欢;I don’我没有什么事要做吗?有必要吗?因为我以前的代码即使没有它也能工作。你应该始终使用正确的语法,因为你永远不会知道什么时候不推荐的/错误的语法会消失/不再工作……你可以自由地以评论的形式分享你的意见,而不是回答。你只是一点也没有回答问题。
<?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);
    ?>