PHP无法使用INSERT INTO方法

时间:2012-02-15 08:54:45

标签: php mysql insert

我想在eshop_db中插入customer表 当我运行它时,它没有任何错误,但它没有存储在mysql中。 我的代码中有什么问题? 我真的不明白。 请给出一些答案。感谢。

- registerForm.php -

<form action="register.php" method="post">
    <p>User ID: <input type="text" name="userId" size="30"/>*</p>
    <p>Password: <input type="password" name="password" size="30"/>*  </p>
    <p>Retype Password: <input type="password" name="repassword" size="30"/>*</p>
    <p>First Name: <input type="text" name="firstName" size="30"/>*</p>
    <p>Last Name: <input type="text" name="lastName" size="30"/>*</p>
    <p>Your Address (*):</p>
    <p><textarea name="address" rows="5" cols="30"></textarea></p>
    <p>Phone: <input type="text" name="phone" size="20"/>*</p>
    <p>E-mail: <input type="text" name="email" size="21"/>*</p>
    <p><input type="submit" value="Create Account"/></p>
</form>

- register.php -

<?php
require "sql_connection.php";
if(isset($_POST['submit']))
{
    if($_POST["password"]==$_POST["repassword"])
    {
        mysql_query("insert into customer (userId, password, firstName, lastName, address, phone, email) 
        values ('$_POST[userId]','$_POST[password]','$_POST[firstName]','$_POST[lastName]','$_POST[addres]]','$_POST[phone]','$_POST[email]')")
        or die(mysql_error());
    }
}
?>

- sql_connection.php -

<?php
$db_host = "localhost";
$db_username = "root";
$db_pass = "mypass";
$db_name = "eshop_db";

@mysql_connect("$db_host", "$db_username", "$db_pass", "$db_name") or die("connection is fail.");
@mysql_select_db("$db_name") or die("database does not exsist.");
echo "Successfully connected!!";
?>

3 个答案:

答案 0 :(得分:2)

试试这个:

<?php

require "sql_connection.php";

if(isset($_POST['submit']) && $_POST["password"] == $_POST["repassword"]) {

  mysql_query(
'INSERT INTO `customer` (`userId`, `password`, `firstName`, `lastName`, `address`, `phone`, `email`) 
  VALUES ('.$_POST['userId'].', '.$_POST['password'].', '.$_POST['firstName'].', '.$_POST['lastName'].', '.$_POST['address'].', '.$_POST['phone'].', '.$_POST['email'].')'
  ) or die(mysql_error());

}

最后,过滤并验证您的传入数据。

答案 1 :(得分:2)

错字,请在此处更正此部分:

 '$_POST[addres]]' // wrong
 '$_POST[address]' // right

答案 2 :(得分:0)

嗯,除了直接使用POST数组中的值的明显坏主意之外,还需要引用索引。所以,$ _POST ['address']等等。另外,如果你想尝试进行字符串注入,数组值需要用大括号进行转义。