为什么mysql代码没有在数据库中提交值

时间:2012-11-01 10:06:41

标签: php html mysql

这是表格的代码:

   <div id="regform">
   <div id="regform-top">
   <h2>User Registration</h2>
   <p>Please complete this form</p>
   </div>

   <form id="register-form" name="register-form" action="submit.php"  method="post"    
   class="validation">
   <fieldset>

   <table>

  <tr>
  <td>
  <div class="fieldgroup">
  <label for="user-name">User name*: </label>
  <input type="text" id="name" name="name" value="" size="12" class="inpt" /><br    
  class="clear" />
  </div>
  <div class="fieldgroup">
  <label for="password">Password*: </label>

  <input type="password" id="password" name="password" value="" size="12" class="inpt"     
   /><br class="clear" />

  </div>
  </td>
  <td id="form-note">
  <br />

  <p><strong>Form  Instructions</strong></p>

  <p>*Required Field</p>
  </td>
  </tr>

  </table>


  <table id="bottom-reg">

  <tr>
  <td><br />
  <div class="fieldgroup">
  <label for="firstname">First name*</label>
  <input type="text" id="firstname" name="firstname" value="" size="12" class="inpt" />  
  <br class="clear" />

  </div>

   <div class="fieldgroup">
  <label for="email">Email Address* </label>
  <input type="text" id="email" name="email" value="" size="12" class="inpt" /><br 
  class="clear" />
  </div>


  <div class="fieldgroup">
  <label for="address1">Address 1* </label>
  <input type="text" id="address1" name="address1" value="" size="12" class="inpt" />   
  <br class="clear" />
  </div>
  <label for="address2">Address 2</label>
  <input type="text" id="address2" name="address2" value="" size="12" class="inpt" />   
  <br class="clear" />
  <label for="address2">Address 3</label>
  <input type="text" id="address3" name="address3" value="" size="12" class="inpt" />   
  <br class="clear" />

  <div class="fieldgroup">
  <label for="country">Country*</label>
  <input type="text" id="country" name="country" value="" size="12" class="inpt" /><br    
  class="clear" />
  </div>
  </td>
  <td><br />
  <div class="fieldgroup">
  <label for="lastname">Last name*</label>
  <input type="text" id="lastname" name="lastname" value="" size="12" class="inpt" />   
  <br class="clear" />
  </div>

  <div class="fieldgroup">
  <label for="group">Group* </label>
  <input type="text" id="name" name="group" value="" size="12" class="inpt" />


  <br class="clear" />
  </div>

  <div class="fieldgroup">
   <label for="city">City* </label>
  <input type="text" id="city" name="city" value="" size="12" class="inpt" /><br  
   class="clear" />
   </div>

   <div class="fieldgroup">
   <label for="city">State* </label>
  <input type="text" id="state" name="state" value="" size="12" class="inpt" /><br    
  class="clear" />
  </div>

  <div class="fieldgroup">
  <label for="zip">Zip*</label>
  <input type="text" id="zip" name="zip" value="" size="12" class="inpt" /><br    
  class="clear" />
  </div>

  </td>

  </tr>

  </table>

  <input type="submit" value="Register" class="submit-btn" />
  </fieldset>
  </form>

这是submit.php的代码:

     <?php

     $con = mysql_connect("localhost","viatechp_invacar","storefront72");
  if (!$con)
  {
    die('Could not connect: ' . mysql_error());
  }


  mysql_select_db("viatechp_invacare", $con);



    $sql="INSERT INTO registration(username,password,fname,lname,group,
    address1,address2,address3, email,city,state,zip,country )
    VALUES
    ('$_POST[name]','$_POST[password]', '$_POST[firstname]','$_POST[lastname]','  
    $_POST[group]','$_POST[address1]','$_POST[address2]','$_POST[address3]',                                                           
   '$_POST[email]','$_POST[city]','$_POST[state]','$_POST[zip]','$_POST[country]'

    )" ;

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

  $results = mysql_fetch_assoc($query);

   if ($results) { 
  echo 'The query returned ' . $results[ 'registration' ];
  } else {
  echo 'The query did not return any results';
  } ?>


  echo $sql;


  ?>

显示错误:

您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,以便在“group,address1,address2,address3,email,city,state,zip,country”附近使用正确的语法VALUES('sdfdsf'在第1行

5 个答案:

答案 0 :(得分:1)

group是一个SQL关键字。如果这是你的一个字段的名称,你必须用`like so:

将它括起来
`group`,`address1`,...

这告诉mySQL它是一个字段名而不是关键字。最好将所有字段都包含在`中,以防止您可能没有注意到的任何错误。

答案 1 :(得分:0)

由pburgess发现。 GROUP,ORDER是我们在编程时使用的一些常用字段名称。确保使用反引号group将它们括起来,这总是一个好习惯。

$sql="INSERT INTO registration(username,password,fname,lname,`group`,
    address1,address2,address3, email,city,state,zip,country )
    VALUES
    ('$_POST[name]','$_POST[password]', '$_POST[firstname]','$_POST[lastname]','  
    $_POST[group]','$_POST[address1]','$_POST[address2]','$_POST[address3]',                                                           
   '$_POST[email]','$_POST[city]','$_POST[state]','$_POST[zip]','$_POST[country]'

    )" ;

答案 2 :(得分:0)

试试这个

$sql="INSERT INTO registration(`username`,`password`,`fname`,`lname`,`group`,
       `address1`,`address2`,`address3`, `email`,`city`,`state`,`zip`,`country` )
       VALUES
      ('$_POST[name]','$_POST[password]', '$_POST[firstname]','$_POST[lastname]',
      '$_POST[group]','$_POST[address1]','$_POST[address2]','$_POST[address3]',                                                           
      '$_POST[email]','$_POST[city]','$_POST[state]','$_POST[zip]','$_POST[country]')" ;

因为您有一些字段名称是保留关键字,例如您有group

答案 3 :(得分:0)

您的$_POST值缺少引号,请尝试更新

 $sql="INSERT INTO registration
     (`username`,`password`,`fname`,`lname`,`group`,`address1`,`address2`,`address3`, `email`,`city`,`state`,`zip`,`country`)
     VALUES
     ('$_POST[\"name\"]','$_POST[\"password\"]',$_POST[\"firstname\"]','$_POST[\"lastname\"]','  
            $_POST[\"group\"]','$_POST[\"address1\"]','$_POST[\"address2\"]','$_POST[\"address3\"]',                                                           
           '$_POST[\"email\"]','$_POST[\"city\"]','$_POST[\"state\"]','$_POST[\"zip\"]','$_POST[\"country\"]'

            )" ;

答案 4 :(得分:0)

这太晚了,但这可能对某人有所帮助。每当你想检查为什么你的查询没有&#39;总是尝试回应你的查询并将其粘贴到phpmyadmin,它会抛出mySQL错误,这更容易理解查询中的问题