-2

我是 PHP 新手,只是想创建一个非常基本的注册表单,但是当我单击提交时,它不会在我的数据库中创建数据。

<form action"signup.php" method="post">
  username:<input type="text" name="n"><br />
  password:<input type="password" name="p"><br />
  id      :<input type="text" name="id"><br />
  <input type="submit">
</form>   


<?php
$conn = mysql_connect("localhost", "root", "");
$db   = mysql_select_db("myth", $conn);
?>

<?php
$user = $_POST['n'];
$pass = $_POST['p'];
$id   = $_POST['id'];
$sql  = "INSERT into phplogin values(" . $id . ",'" . $user . "','" . $pass . "')";
$query = mysql_query();

if(!$query)
    echo "failed ".mysql_error();
else           
    echo "successful";
?>
4

4 回答 4

1

您实际上并没有运行查询 - 您需要调用mysql_query($sql).

请注意,您的代码很容易受到 SQL 注入之类的攻击,而 mysql_query 是 PHP 中已弃用的函数。

于 2013-08-03T08:15:00.700 回答
1

首先,您不必使用mysql_*命令,因为它们已被弃用;使用mysqli_*orPDO代替。

其次,您必须在方法中传递您的字符串。在你的情况下:$result = mysql_query($sql);

请记住,这$result将返回您必须获取的资源以获取您的行

while ($row=mysql_fetch_row($result)) {
// here, you have your rows
}
于 2013-08-03T08:16:45.880 回答
0

你的脚本应该是这样的

<?php
    // create connection
    $mysqli = new mysqli("localhost", "my_user", "my_password", "world");

    // check connection
    if ($mysqli->connect_errno) {
         printf("Connect failed: %s\n", $mysqli->connect_error);
         exit();
    }

    $user = $_POST['n'];
    $pass = $_POST['p'];
    $id = $_POST['id'];      

    $sql = "INSERT into phplogin values('$id','$user','$pass')";
    if($mysqli->query($query)) {
         printf("New Record has id %d.\n", $mysqli->insert_id);
    } else {
         printf("Failed ".$mysqli->error);
    }

    // close connection
    mysqli_close($link);

?>

是的,不要使用 mysql_* ,因为它已被弃用,而是使用 mysqli_ 或 PDO 。

于 2013-08-03T08:19:15.033 回答
0

尝试使用mysqli_query,因为它比 mysql_query 更好...

<?php
$conn = mysqli_connect("localhost","root","","myth")or die("connection to database problem");

$user = $_POST['n'];
$pass = $_POST['p'];
$id = $_POST['id'];
$sql = "INSERT INTO phplogin VALUES (".$id.",'".$user."','".$pass."')";
$query = mysqli_query($conn, $sql)or die("query error");

if(false===$query)
    echo "<br/>".mysqli_error($conn)."<br/><br/><br/>";
    else
    echo "<br/>done ";
?>

如果连接有任何问题,connection to database problem应该会发生

于 2013-08-03T08:22:10.820 回答