提交表单时查询为空

时间:2014-10-21 09:57:22

标签: php mysql forms

/ 表单设计 /

    <html>
        <head>
    <title>Untitled Document</title>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>

        <body>
    <form name="form1" method="post" action=""><label><center>Register Form</center></label>
      <p><center></center><label>Name:</label>
      &nbsp; 
      <input type="text" name="name"></center>
    </p>
      <p><label>Rollno:</label>&nbsp; 
        <input type="text" name="rno"> 
      </p>
      <p><label>Address:</label>&nbsp; 
        <input type="text" name="add"> 
      </p>
      <p>
        <input type="submit" name="Submit" value="Submit">
    </p>
    </form>

/ *********** PHP ****************** / / 表单提交 /

    <?php 
    $con=mysql_connect("localhost","root","");
    mysql_select_db("alpha") or die( "Unable select database");
    // Check connection
    // escape variables for security
    $name = mysql_real_escape_string($_POST['name'],$con);
    $rno = mysql_real_escape_string( $_POST['rno'],$con);
    $add = mysql_real_escape_string($_POST['add'],$con);

    $sql=mysql_query("INSERT INTO test (name, rno, add)
    VALUES ('$name','$rno','$add')",$con);
    $result=mysql_query($sql) or die(mysql_error());
    if (!mysql_query($result,$con)) {
      die(mysql_error($con));
    }
    echo "1 record added";
        mysql_close($con);
    ?>
    </body>
    </html>

有人请帮我解决这个错误。 我收到消息查询是空的。 我怎样才能解决这个问题。 我是php和我的新手。 我不知道如何解决这个问题。

3 个答案:

答案 0 :(得分:0)

试试这个

<?php 

$con=mysql_connect("localhost","root","");
mysql_select_db("alpha") or die( "Unable select database");
// Check connection
// escape variables for security
$name = mysql_real_escape_string($_POST['name']);
$rno = mysql_real_escape_string( $_POST['rno']);
$add = mysql_real_escape_string($_POST['add']);

$sql=mysql_query("INSERT INTO test (name, rno, add) VALUES ('$name','$rno','$add')",$con);

if ($sql) {
    echo "1 record added";        
}
else {
    die(mysql_error($con));
}
mysql_close($con);

答案 1 :(得分:0)

mysql_query应该执行查询:

&#13;
&#13;
  <?php 
    $con=mysql_connect("localhost","root","");
    mysql_select_db("alpha") or die( "Unable select database");
    // Check connection
    // escape variables for security
    $name = mysql_real_escape_string($_POST['name'],$con);
    $rno = mysql_real_escape_string( $_POST['rno'],$con);
    $add = mysql_real_escape_string($_POST['add'],$con);

    $query = sprintf("INSERT INTO test (name, rno, add)
              VALUES ('%s','%s','%s')", $name, $rno, $add);

    $result = mysql_query($query, $con);
    if (!$result) {
       $message  = 'Invalid request : ' . mysql_error() . "\n";
       $message .= 'Your query : ' . $query;

      die($message);
    }

      // @see http://php.net/manual/en/function.mysql-affected-rows.php
      echo mysql_affected_rows()  + " record added";

      mysql_close($con);
    ?>
&#13;
&#13;
&#13;

答案 2 :(得分:0)

首先,如果您将html表单代码和php代码保存在同一页面中,则需要一个条件运算符来检查表单是否已提交。在上面的代码中,即使表单未提交,也会执行php代码。

确保使用以下任何内容获取表单数据:

var_dump($_POST);
print_r($_POST);

如果它显示您输入的数据,那么到目前为止您还不错。

在上面的代码中,您有:

$result=mysql_query($sql) or die(mysql_error());

完成上述操作后,您将不需要以下代码,因为die()函数也会这样做。以下代码也会使您的查询运行两次。

    if (!mysql_query($result,$con)) {
      die(mysql_error($con));
    }