簡體   English   中英

php注冊表

[英]php registration form

我所有我試圖使用html表單將一些值插入數據庫,它給我的列計數的錯誤與第1行的值計數不匹配 ,我不明白,我是一個新的PHP PLZ任何人都可以幫助我嗎? 問候

PHP代碼

<?
if(isset($_POST['submit'])){

      $userName = $_POST["userName"];
      $FirstName =$_POST["FirstName"];
      $LastName =$_POST["LastName"];
  $stnumber = $_Post["ID"];
  $class = $_POST["class"];
  $subject = $_POST["subject"];
  $grade = $_POST["grade"];
  $password = $_POST["password"];

} else{

    echo("wronggggggg nameeeeeeeeeeeee");
}


$stnumber = mysql_escape_string ("ID");
$userName = mysql_escape_string ("userName");
$password = mysql_escape_string ("password");
$FirstName = mysql_escape_string ("FirstName");
$LastName = mysql_escape_string ("LastName");
$class = mysql_escape_string ("class");
$subject = mysql_escape_string ("subject");
$grade = mysql_escape_string ("grade");







mysql_query ("INSERT INTO LOGIN
 VALUES ('$stnumber','$userName','$password','$FirstName','$LastName','$stnumber','$class','$subject','$grade')") or die(mysql_error());





 $sql = mysql_query("SELECT * FROM LOGIN WHERE userName ='$userName'");
//$row = mysql_query($sqlUser);
//$result = mysql_query($sql, $connection);

if(mysql_num_rows ($sql)> 0){
    echo   ("Upload sucessful");
    } else
{
    echo("Upload fail");

}

試試此代碼

$ insert_qry = mysql_query(“INSERT INTO LOGINIDuserNamepasswordFirstNameLastNameclasssubjectgrade )VALUES('”。$ stnumber。“','”。$ userName。“','”。$密碼 “ ''”,$名字。 “ ''”,$姓氏。 “ ''”。$類。 “ ''”。$主題。 “ ''”。$檔次。'“) “)或死(mysql_error());

檢查表中有多少列。 它應該是您插入的數量的確切數字,即9(減去任何自動增量)。

您必須指定要用於INSERT的字段,或者正確地將數據插入到所有字段中。

我建議您嘗試按如下方式編輯查詢(我寧願假設您的字段名稱):

INSERT INTO `LOGIN`
(`stnumber`, `username`, `password`, `forename`, `surname`, `stnumber`, `class`, `subject`, `grade`)
VALUES 
('$stnumber','$userName','$password','$FirstName','$LastName','$stnumber','$class','$subject','$grade')

但值得注意的是,您使用的是一組已棄用的函數。 您應該調查MySQLiPDO的使用,以獲得更好的性能和更長的使用壽命。

在這一行:

mysql_query ("INSERT INTO LOGIN
VALUES ('$stnumber','$userName','$password','$FirstName','$LastName','$stnumber','$class','$subject','$grade')") or die(mysql_error());

你使用$stnumber兩次,我不知道這是否有意,但我猜這可能增加了一個額外的值,不應該存在。

我發現最好在INSERT語句中包含列名,以明確定義哪些值插入到哪個列中。 例如:

INSERT INTO `table` ( `column_1`, `column_2` )
VALUES ( 'value_1', 'value_2' );

您也可以考慮查看PHP PDO,因為它是一個更安全的mysql_query調用替代品,從v5.5.0開始,將不推薦使用。

如果您提供表結構,我們可能能夠確切地從INSERT語句中確定哪些列丟失/額外。

暫無
暫無

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

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