[英]Inserting data into MySQL 5.5 using PHP 5.3
我在使用PHP 5.3將數據從表單插入MySQL 5.5數據庫時遇到問題,我可以插入數據,但是重復插入。
這是我的代碼:
<?php
$host ="localhost";
$user ="root";
$password ="password";
$database ="database1";
$table ="users";
mysql_connect("$host","$user","$password")or die(mysql_error());
mysql_select_db("$database")or die(mysql_error());
$mysql = "INSERT INTO $table (username,password)
VALUES('$_POST[username]','$_POST[password]')";
if(!mysql_query($mysql)) die(mysql_error());
echo"Data inserted";
mysql_close();
?>
我收到的錯誤消息是
"undefined index:username"
"undefined index:password"
我的表格字段是三個ID,用戶名和密碼。
您收到notice
錯誤。
檢查$_POST['username']
存在
if(isset($_POST[username]) && isset($_POST[password])){
$host ="localhost";
$user ="root";
$password ="password";
$database ="database1";
$table ="users";
mysql_connect("$host","$user","$password")or die(mysql_error());
mysql_select_db("$database")or die(mysql_error());
$mysql = "INSERT INTO $table (username,password)
VALUES('$_POST[username]','$_POST[password]')";
if(!mysql_query($mysql)) die(mysql_error());
echo"Data inserted";
mysql_close();
}
由於沒有檢查用戶名是否已經存在於數據庫中,因此您正在重復插入。 在執行INSERT
之前,請檢查數據庫中是否已經存在用戶名,如果已經存在,則不允許插入。
使用mysqli或pdo連接數據庫。 mysql_ *函數將很快被棄用。
在將數據插入數據庫之前,請mysqli_real_escape_string
使用mysqli_real_escape_string
或mysql_real_escape_string
對數據進行mysqli_real_escape_string
。
正如其他人所說,使用mysqli_*
代替mysql_*
我記得5.5有點壓力...嘗試這個
$user=_$POST['username'];
$pass=_$POST['password'];
$sql="INSERT INTO $table (username, password) VALUES ('$user', '$pass')";
$result = $conn->query($sql);
if ($result)
{
echo "Entered data successfully";
}
else
{
echo "data not posted";
}
mysql_close($conn);
?>
但是在5.5版本中,主要的問題是我在_POST語句中缺少用戶名和密碼周圍的'...奇怪的是控制台不需要它,但是大多數瀏覽器都需要.....
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.