[英]PHP - MYSQL not inserting more than one row
我在html的所有安裝程序和工作程序中都具有我的注冊表單,它可以運行並在第一次插入行到mysql表中,但是我無法再插入任何行。
我的PHP是:-
include "config.php";
$gamerid = $_POST['gamerid_create'];
$email = $_POST['email_create'];
$password = md5($_POST['password_create']);
$country = $_POST ['country_create'];
echo "<pre>";
print_r($_POST);
echo "</pre>";
$insert = "insert into users (gamerid,email,password,country) values('$gamerid','$email','$password','$country')";
mysql_query($insert);
現在,當我在mysql中創建表時,我使用了以下代碼:-
CREATE TABLE users
(
id INT primary key NOT NULL AUTO_INCREMENT,
gamerid varchar (255) NOT NULL,
email varchar (255) NOT NULL,
password varchar (255) NOT NULL,
country varchar (255) NOT NULL
)
為什么不插入更多行?
我的HTML如下:
<form id = "signup_form" method = "POST" action = "http://localhost:8080/quizicle/pages/register.php">
<table id = "signup_form_table" border = "0" class = "signup_table_body">
<tr class = "signup_form_tr_label">
<td class = "signup_form_td"><label for "gamerid" class = "signup_form_label">Create a Gamer ID:</label></td>
<td class = "signup_form_td"><label for "email" class = "signup_form_label">Your Email:</label></td>
<td class = "signup_form_td"><label for "password" class = "signup_form_label">Password:</label></td>
<td class = "signup_form_td"><label for "country" class = "signup_form_label">Country:</label></td>
<td class = "signup_form_td"></td>
</tr>
<tr class = "signup_form_tr">
<td class = "signup_form_td"><input type = "text" name = "gamerid_create" id = "gamerid_create" maxlength="50" class = "signup_form_input"/></td>
<td class = "signup_form_td"><input type = "text" name = "email_create" id = "email_create" maxlength="50" class = "signup_form_input"/></td>
<td class = "signup_form_td"><input type = "password" name = "password_create" id = "password_create" maxlength="50" class = "signup_form_input"/></td>
<td class = "signup_form_td">
<select name = "country_create"> <option>Please select a country</option>
<option>United Kingdom</option>
</select>
</td>
<td class = "signup_form_td"><input type = "submit" value = "Sign me up!" id = "btn_register" value = "register" class = "signup_form_submit_btn"/></td>
</tr>
</table>
</form>
<?php
include "config.php";
// INPUT CLEANING FUNCTION
function clean($str)
{
$cleaned = mysql_real_escape_string(strip_tags($str));
return $cleaned;
}
$gamerid = clean($_POST['gamerid_create']);
$email = clean($_POST['email_create']);
$password = clean(md5($_POST['password_create']));
$country = clean($_POST ['country_create']);
$insert = "insert into users(gamerid,email,password,country) values('$gamerid' ,'$email',' $password', '$country')";
mysql_query($insert);
?>
這可能與您的主鍵id
讓我們更改sql,看看它是否有效。
$insert = "INSERT INTO users (id, gamerid, email, password, country)
VALUES (NULL, '{$_POST['gamerid_create']}', '{$_POST['email_create']}',
'{$_POST['password_create']}', '{$_POST['country_create']}');";
在使用PHP / MySQL開發技能時應考慮的一些事項:
驗證並整理您的用戶輸入。 SQL注入風險。 參見:mysql_real_escape_string(),此處有基本幫助。
您應該配置表,確保將字段類型和大小設置為所需的最小值,如果不全部填充,VARCHAR(255)將浪費大量空間。
始終至少使用md5算法對密碼進行哈希處理。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.