Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 我已将此表单数据发送到数据库中_Php_Mysql - Fatal编程技术网

Php 我已将此表单数据发送到数据库中

Php 我已将此表单数据发送到数据库中,php,mysql,Php,Mysql,我可以在数据库中插入除电子邮件字段以外的所有字段。我在第11行的C:\wamp\www\ins\u db.php中得到了以下未定义的错误索引:em 电子邮件的数据类型如下: email varchar(20) not null, 表格编号: 下面是接收表单数据的完整php代码 <?php $con = mysqli_connect('localhost','root','','jobhunt'); if(!$con) { echo "Can not connect to DB"; }

我可以在数据库中插入除电子邮件字段以外的所有字段。我在第11行的C:\wamp\www\ins\u db.php中得到了以下未定义的错误索引:em 电子邮件的数据类型如下:

email varchar(20)  not null,
表格编号:

下面是接收表单数据的完整php代码

<?php
$con = mysqli_connect('localhost','root','','jobhunt');
if(!$con)
{
echo "Can not connect to DB";
}
if(isset($_POST['id']))
echo "suceecess";
if(isset($_POST['em'])){
$em = $_POST['em'];
}
else 
echo "empty";
if(isset($_POST))
{
$query = "INSERT INTO seeker(sid,fname,lname,contact,email,dob,gender,address,religion,experience,qualification,created)
VALUES
('$_POST[id]','$_POST[fname]','$_POST[lname]','$_POST[contact]','$_POST[em]','$_POST[dob]','$_POST[gender]','$_POST[address]','$_POST[religion]','$_POST[exp]','$_POST[qualification]','$_POST[createon]')";
}
if (!mysqli_query($con,$query))
  {
  die('Error: ' . mysqli_error($con));
  }
echo "1 record added";

mysqli_close($con);
?>
您已经错过了->=


测试每个POST变量中的值。将PHP代码替换为以下内容:

<?php

    $con = mysqli_connect('localhost','root','','jobhunt');

    if(!$con){
        echo "Can not connect to DB";
        exit;
    }

  $keys = array('id', 'fname', 'lname', 'contact', 'em', 'dob', 'gender', 'address', 'religion', 'exp', 'qualification', 'createon');
  $query = "INSERT INTO seeker(sid,fname,lname,contact,email,dob,gender,address,religion,experience,qualification,created) VALUES (";

  foreach($keys as $key){

    if(isset($_POST[$key])){

      $query .= "'" . $_POST[$key] . "'";

    }else{

      $query .= "''";

    }

    if($key === end($keys)){

      $query = ");";

    }else{

      $query .= ",";

    }
  }

  if (!mysqli_query($con,$query)){
    die('Error: ' . mysqli_error($con));
  }else{
    echo "success";
  }

  mysqli_close($con);

?>

作为补充说明,直接从POST变量插入数据库是一个严重的安全风险。

您在HTML代码中漏掉了一个等号

<input type = "text" name "em">
应该是

<input type = "text" name = "em">

修正你的索引$_POST['id'],但更好地使用。谢谢!一开始是对的,我改了名字,但没看到标志。我编辑了它。但这不是问题,我按照你的建议改正了。但还是有错误!我如何修复它?我测试了您的给定代码,并添加了其他部分。问题是$\u POST['em']变量为空!我不知道为什么,我查过了!是的,问题是em变量未设置!但是我已经在表单中输入了它的值。请检查我的更新答案。我已经在第11行的HTML中提到,您缺少等于=的内容。是的,我已经检查了所有内容并更正了。但还是没有希望!我担心我必须完全删除电子邮件字段才能继续!不试试var_dump$_POST['em'];并检查它是否为空或notYes电子邮件字段是否为空。但是表单中有价值我看不到你当前的电子邮件中有价值。。。我猜你是在发送前自己插入的?我的意思是我已经在表单中输入了电子邮件id以便处理。但它仍然是空的!是的,我考过了。它没有值。但我不明白为什么我输入了一个值,而您绝对确定您已经将当前表单改为name=em而不是name em?
if(isset($_POST['em'])){
$em = $_POST['em'];
}
<?php

    $con = mysqli_connect('localhost','root','','jobhunt');

    if(!$con){
        echo "Can not connect to DB";
        exit;
    }

  $keys = array('id', 'fname', 'lname', 'contact', 'em', 'dob', 'gender', 'address', 'religion', 'exp', 'qualification', 'createon');
  $query = "INSERT INTO seeker(sid,fname,lname,contact,email,dob,gender,address,religion,experience,qualification,created) VALUES (";

  foreach($keys as $key){

    if(isset($_POST[$key])){

      $query .= "'" . $_POST[$key] . "'";

    }else{

      $query .= "''";

    }

    if($key === end($keys)){

      $query = ");";

    }else{

      $query .= ",";

    }
  }

  if (!mysqli_query($con,$query)){
    die('Error: ' . mysqli_error($con));
  }else{
    echo "success";
  }

  mysqli_close($con);

?>
<input type = "text" name "em">
<input type = "text" name = "em">