为什么将值1插入数据库中?

时间:2015-03-24 10:05:10

标签: php mysql database

这是我的代码片段数据必须插入数据库,但每次我提交表单时,只在每列中插入值1

if(isset($_POST['submit'])) {
    $con=mysql_connect("localhost","root","");
    if($con)  {
        mysql_select_db("college",$con);
    } else  {
        echo "Connection is not Est"."<br>";
    }

    $first_name=isset($_POST['first_name']);
    $middle_name=isset($_POST['middle_name']);
    $last_name=isset($_POST['last_name']);
    $email_id=isset($_POST['email_id']);
    $mobile_no=isset($_POST['mobile_no']);

    //  if($first_name!=""){                            
    $qry=mysql_query("insert into stud_master(fname,mname,lname,mobile_no,email_id) values ('$first_name','$middle_name','$last_name','$mobile_no','$email_id')");
    //  mysql_query("$qry);
    //}
    echo "success";
} else {
    echo "there is problem with query";
}

任何帮助将不胜感激......

6 个答案:

答案 0 :(得分:3)

你的问题在于这一部分:

$first_name=isset($_POST['first_name']);
$middle_name=isset($_POST['middle_name']);
$last_name=isset($_POST['last_name']);
$email_id=isset($_POST['email_id']);
$mobile_no=isset($_POST['mobile_no']);

isset是一个返回1的函数,如果已经初始化/设置了变量,则返回true,这就是原因。因此,您的解决方案是删除isset函数调用。

但是,如果你仍然想在检查变量之前检查post变量是否已设置,我建议使用一个三元if语句,它在一行中实现了这一点并且看起来很整洁:

$first_name= (isset($_POST['first_name'])) ? $_POST['first_name'] : "";
$middle_name= (isset($_POST['middle_name'])) ? $_POST['middle_name'] : "";
//...

首先检查post变量是否已设置,如果是,则将其分配给变量。如果未设置,将为变量分配一个空字符串。

答案 1 :(得分:0)

您在每个POST参数上调用isset,这将根据参数是否设置返回true或false。删除isset来电,您的代码就可以使用。

答案 2 :(得分:0)

你应该改变这个:

$first_name=isset($_POST['first_name']);
$middle_name=isset($_POST['middle_name']);
$last_name=isset($_POST['last_name']);
$email_id=isset($_POST['email_id']);
$mobile_no=isset($_POST['mobile_no']);

为:

$first_name=$_POST['first_name'];
$middle_name=$_POST['middle_name'];
$last_name=$_POST['last_name'];
$email_id=$_POST['email_id'];
$mobile_no=$_POST['mobile_no'];

答案 3 :(得分:0)

请删除isset()功能,因为它会在值到来时返回1

答案 4 :(得分:0)

Isset返回布尔值0 0r 1.这就是每次真实时得到1的原因。从变量中删除isset只需使用

$first_name=$_POST['first_name'];
$middle_name=$_POST['middle_name'];
$last_name=$_POST['last_name'];
$email_id=$_POST['email_id'];
$mobile_no=$_POST['mobile_no'];

第二件事使用mysqlipdo,因为mysql_ *现在已被删除

答案 5 :(得分:0)

使用此

<?php
if(isset($_POST['submit'])) {

     $con=mysql_connect("localhost","root","");
    if(!$con)
    {
       echo "Connection is not Est"."<br>";
   }
   else
   {
       mysql_select_db("college",$con);

       $first_name = $_POST['first_name'];
       $middle_name = $_POST['middle_name'];
       $last_name = $_POST['last_name'];
       $email_id = $_POST['email_id'];
       $mobile_no = $_POST['mobile_no'];

       if( $qry=mysql_query("insert into stud_master(fname,mname,lname,mobile_no,email_id) values ('$first_name','$middle_name','$last_name','$mobile_no','$email_id')"){

      echo "success";

      }
      else{
         echo "there is problem with query";
      }
   }
?>

一些注意事项: 1.切换到mysqli而不是使用已弃用的mysql 你的代码本身并不安全。有人可能会损害您的数据库,因为您的值未被转义。

那就是说,上面的代码应该有效。