Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.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 mysql查询中的未定义索引错误_Php_Mysql - Fatal编程技术网

Php mysql查询中的未定义索引错误

Php mysql查询中的未定义索引错误,php,mysql,Php,Mysql,除非发布表单,否则此表单中的变量永远不会有值: <?php $conn=mysql_connect("localhost","root","") or die("cannot connect"); $db=mysql_select_db("ticket",$conn) or die("no db"); if (isset($_POST['submit'])) { $name1=$_POST['name']; $phone1=$_POS

除非发布表单,否则此表单中的变量永远不会有值:

<?php
  $conn=mysql_connect("localhost","root","")
  or die("cannot connect");
    $db=mysql_select_db("ticket",$conn)
    or die("no db");
    if (isset($_POST['submit']))
    {
    $name1=$_POST['name'];
    $phone1=$_POST['phone'];
    $email1=$_POST['email'];
    $pass1=$_POST['password'];
    }
  $query="insert into register(name,phone,email,pass) values ('$name1','$phone1','$email1','$pass1')";
  $result=mysql_query($query)
  or die("Error in pushing".mysql_error());
  mysql_close($conn);
  ?>
如果需要等待帖子执行查询,请将该代码放入
If

  $query="insert into register(name,phone,email,pass) values ('$name1','$phone1','$email1','$pass1')";

您正在检查是否存在
$\u POST['submit']
,并设置一些变量(如果找到)。然后在条件块外执行mysql查询,因此如果未找到$\u POST变量,您将得到
未定义变量
错误

试一试


将mysql查询放在if语句中,如下所示:

<?php
  $conn=mysql_connect("localhost","root","")
  or die("cannot connect");
    $db=mysql_select_db("ticket",$conn)
    or die("no db");
    if (isset($_POST['submit']))
    {
    $name1=$_POST['name'];
    $phone1=$_POST['phone'];
    $email1=$_POST['email'];
    $pass1=$_POST['password'];
    // This code now inside if block
    $query="insert into register(name,phone,email,pass) values ('$name1','$phone1','$email1','$pass1')";
    $result=mysql_query($query)
      or die("Error in pushing".mysql_error());
    mysql_close($conn);
  }
  ?>

当表单未提交时,您的变量未定义,您正在使用它们查询数据库。因此,您将所有内容都放在if语句中,以便只有在提交表单时,查询才会执行。此外,您还容易受到mysql注入的攻击,请使用mysql\u real\u escape\u string函数或使用mysqli prepared语句。

我认为问题在于您没有进入if循环,因为您没有将提交按钮命名为: 试试这个

if(isset($_POST['submit'])) {
$name1=$_POST['name'];
$phone1=$_POST['phone'];
$email1=$_POST['email'];
$pass1=$_POST['password'];
$query="INSERT INTO `register`(`name`,`phone`,`email`,`pass`) VALUES('$name1','$phone1','$email1','$pass1')";
$result=mysql_query($query) or die("Error in pushing".mysql_error());
mysql_close($conn);
}
?>

非常感谢您的回答
if(isset($_POST['submit'])) {
$name1=$_POST['name'];
$phone1=$_POST['phone'];
$email1=$_POST['email'];
$pass1=$_POST['password'];
$query="INSERT INTO `register`(`name`,`phone`,`email`,`pass`) VALUES('$name1','$phone1','$email1','$pass1')";
$result=mysql_query($query) or die("Error in pushing".mysql_error());
mysql_close($conn);
}
?>
<input type="submit" class="submit1" value="Submit" name="submit"/>