簡體   English   中英

為什么我的$ _GET表單不會將數據(使用PHP)插入到MySql數據庫或表中?

[英]Why won't my $_GET Form insert the data (using PHP) into the MySql Database or Table?

這是html表單:

<form action="register.php" METHOD=GET align="center">
<table border="2" align="center">
<tr>
<td>Desired Username:</td><td><input name="username" type="text" size"20"></input></td>
</tr>
<tr>
<td>Your Email:</td><td><input name="email" type="text" size"30"></input></td>
</tr>
<tr>
<td>Desired Password:</td><td><input name="password" type="password" size"20"></input>                                       </td>
</tr>
<tr>
<td>Confirm Password:</td><td><input name="password2" type="password" size"20"></input>          </td>
</tr>
</table>
<input type="submit" value="Register!" align="center"></input>
</FORM>

這是register.php上的PHP代碼:

<?php
$myServer = "localhost";
$myUser = "Censored";
$myPass = "Censored";
$myDB = "Censored";

//connection to the database
$conn = "mssql_connect($myServer, $myUser, $myPass)
or die('Couldn't connect to SQL Server on $myServer')"; 

//select a database to work with
$selected = "mssql_select_db($myDB, $conn)
or die('Couldn't open database $myDB')"; 

//add new user to DB
if($_GET["username"] && $_GET["email"] && $_GET["password"] && $_GET["password2"] )
{
if($_GET["password"]==$_GET["password2"])
{
$sql="INSERT INTO Users(Username, Password, Email)              VALUES('$_GET[username]','$_GET[password]','$_GET[email]')";
$result="mysql_query($sql,$conn) or die (mysql_error())";
}

if ($result)
{
echo "<h1 align='center'>Registration Successful!</h1>";

echo "<p align='center'>Click<a href='index.php'> here</a> to log in.</p>";

}
else echo "Oops! Something went wrong. Please <a       href='http://www.canilosa.zxq.net/index.php'>go back</a> and fix it.";
}
?>

我是PHP和MySql的初學者。 我已檢查並重新檢查所有用戶名,密碼,數據庫等。回聲有效,它表示注冊成功,但當我檢查我的數據庫時,沒有數據。


非常感謝所有回答的人! 它現在工作正常:)。 正如我所說的,我是所有這些的新手所以大部分代碼來自教程的片段,我只是撇去它看看它是否有意義。 再次感謝! (我正在創建一個包含大量PHP-MySql的游戲網站......所以我很快就會回到這里xD)

改變這一點

<form action="register.php" METHOD=GET align="center">

<form action="register.php" METHOD="GET" align="center">
                                   ^   ^

也應該

$conn = mysql_connect($myServer, $myUser, $myPass) or die("Couldn't connect to SQL Server on $myServer"); 

//select a database to work with
$selected = mysql_select_db($myDB, $conn) or die("Couldn't open database $myDB"); 

您使用過mssql_connectmssql_select_db但實際命令是mysql_connectmysql_select_db

只需用這個代替你的代碼

//connection to the database
$conn = mysql_connect($myServer, $myUser, $myPass)
or die('Couldn't connect to SQL Server on $myServer'); 

//select a database to work with
$selected = mysql_select_db($myDB, $conn)
or die('Couldn't open database $myDB');

您正在使用的Mysql函數不正確...

更改

mssql_connect($myServer, $myUser, $myPass)

mysql_connect($myServer, $myUser, $myPass)

mssql_select_db($myDB, $conn)

mysql_select_db($myDB, $conn)

文檔鏈接http://www.w3schools.com/php/php_ref_mysql.asp

更正。

  1. form method="GET" close方法attribute
  2. 插入語句如下

    "INSERT INTO Users(Username, Password, Email) VALUES('".$_GET['username']."','".$_GET['password']."','".$_GET['email']."')";

  3. mssql_connect應該是mysql_connectmssql_select_db應該是mysql_select_db

  4. $result= mysql_query($sql,$conn) or die (mysql_error());

區別。

$_GET['username']這將查找在url中傳遞的用戶名值作為參數。

$_GET[username]這將查找可能未在代碼中定義的用戶名常量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM