簡體   English   中英

使用PHP 5.3將數據插入MySQL 5.5

[英]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_stringmysql_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.

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