Mysql_query返回值1但数据库未受影响

时间:2013-11-06 17:48:21

标签: php mysql phpmyadmin

我要将一行更新到mysql数据库中。 senarius是:从表单中获取值并重定向到另一个文件,并使用update语句将表单值设置为数据库。问题是mysql_query返回值1并没有返回任何错误,但是当我通过phpmyadmin检查数据库时,我的数据库没有受到影响。 这是代码

<?php
    $host="localhost";
    $username="root";
    $password="";
    $db_name="login_takrim";
    $tbl_name="takrim_users";
    // Connect to server and select databse.
    mysql_connect("c$host","$username","$password") or die("can not connect");
    mysql_select_db($db_name) or die(mysql_error());
    // username and password sent from form 
    $myusername=$_POST["txtusername"];
    $mypassword=$_POST["txtpassword"];
    $myemail=$_POST["txtemail"];

    // To protect MySQL injection
    $myusername=stripslashes($myusername);
    $myemail=stripslashes($myemail);
    $mypassword=stripslashes($mypassword);
    $myemail=mysql_real_escape_string($myemail);
    $myusername=mysql_real_escape_string($myusername);
    $mypassword=mysql_real_escape_string($mypassword);
    echo "$myusername $mypassword $myemail";// test to see i get the form value on the php server.
    $sql="UPDATE $tbl_name SET username = '$myusername' and  password = '$mypassword' and email= '$myemail' where showname='hussein'";

    $result=mysql_query($sql) or die(mysql_error());//does not return error 
    echo $result;
    if($result==false)
    {
        echo "no";
    }
    else
    {
        //header("location:setEmail.php");
        echo "yes";

    }


?>

3 个答案:

答案 0 :(得分:0)

更改您的 UPDATE 语句

$sql="UPDATE $tbl_name SET `username` = '$myusername',`password` = '$mypassword',`email`= '$myemail' where `showname`='hussein'";

免责声明:不推荐使用mysql_ *函数,因为它们已被弃用。改为使用MySQLi或PDO。

答案 1 :(得分:0)

这里有一个额外的c$host之前):

mysql_connect("c$host","$username","$password") or die("can not connect");

答案 2 :(得分:0)

查询可能正确执行可能没有匹配的记录只是这样做

    <?php
        $host="localhost";
        $username="root";
        $password="";
        $db_name="login_takrim";
        $tbl_name="takrim_users";
        // Connect to server and select databse.
        mysql_connect("c$host","$username","$password") or die("can not connect");
        mysql_select_db($db_name) or die(mysql_error());
        // username and password sent from form 
        $myusername=$_POST["txtusername"];
        $mypassword=$_POST["txtpassword"];
        $myemail=$_POST["txtemail"];

        // To protect MySQL injection
        $myusername=stripslashes($myusername);
        $myemail=stripslashes($myemail);
        $mypassword=stripslashes($mypassword);
        $myemail=mysql_real_escape_string($myemail);
        $myusername=mysql_real_escape_string($myusername);
        $mypassword=mysql_real_escape_string($mypassword);
        echo "$myusername $mypassword $myemail";// test to see i get the form value on the php server.
        $sql="UPDATE $tbl_name SET username = '$myusername',  password = '$mypassword',email= '$myemail' where showname='hussein'";

        $result=mysql_query($sql) or die(mysql_error());//does not return error 
         if(mysql_num_rows($result) > 0)
         {   
             //header("location:setEmail.php");
            echo "yes";

         }
         else
         {
              echo "no";
          }     




    ?>