我是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";
?>
答案 0 :(得分:1)
您实际上并未运行查询 - 您需要致电mysql_query($sql)
。
请注意,您的代码非常容易受到SQL注入等攻击,而mysql_query是PHP中不推荐使用的函数。
答案 1 :(得分:1)
首先,您不得使用mysql_*
命令,因为它们已被弃用;请改用mysqli_*
或PDO
。
其次,你必须在方法中传递你的字符串。在您的情况下:$result = mysql_query($sql);
请记住,$result
将返回您必须获取的资源以获取行
while ($row=mysql_fetch_row($result)) {
// here, you have your rows
}
答案 2 :(得分: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。
答案 3 :(得分: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
应该发生