我的php代码没有向数据库发送用户输入

时间:2013-04-03 16:38:16

标签: php sql database

这是我的代码

<?php
include("inc/scripts/mysql_connect.inc.php");
?>
<?php
$reg = @$_POST['reg'];
    //Declaring Variables
        $fn = "";           //First Name
        $ln = "";           //Last Name
        $em = "";           //Email
        $em2 = "";          //Email Confirm
        $pswd = "";     //Password
        $pswd2 = "";        //Password Confirm
        $d = "";            //Sign Up Date
    //Registration Form
        $fn = strip_tags(@$_POST['first_name']);        //First Name
        $ln = strip_tags(@$_POST['last_name']);     //Last Name
        $em = strip_tags(@$_POST['email']);         //Email
        $em2 = strip_tags(@$_POST['email2']);           //Email Confirm
        $pswd = strip_tags(@$_POST['password']);        //Password
        $pswd2 = strip_tags(@$_POST['password2']);  //Password Confirm
        $d = date("Y-m-d");                        //Sign Up Date

if($reg) {
    if($fn&&$ln&&$em&&$em2&&$pswd&&$pswd2) {
        if($em==$em2){
            if($pswd==$pswd2) {
                if(strlen($fn)>32||strlen($ln)>32) {
                    echo "First name and Last name must be no more than 32 characters!";
                }
                else {
                    if(strlen($pswd)>30||strlen($pswd)<5) {
                        echo "Your password must be between 5 and 30 characters ...";
                    }
                    else {
                        $pswd = md5($pswd);
                        $pswd2 = md5($pswd2);
                        $query = mysql_query("INSERT INTO users VALUES('','$fn','$ln','$em','$pswd','$d','0')");
                        die("<h2>Welcome to bakpakk!</h2>");
                    }
                }
            }
            else {
                echo "Your passwords do not match!";
            }
        }
        else {
            echo "Your emails do not match!";
        }
    }
    else {echo "Please fill in all fields ...";}
}
?>

用户登录系统将此信息发布到数据库。 “mysql_connect.inc.php”看起来像这样

<?
    mysql_connect("localhost","root","250317") or die(myspq_error());
    mysql_select_db("bakpakk");
?>

当我在输入字段(名字,姓氏,电子邮件,密码等)中输入数据时,它不会发布到数据库中的表中。我似乎无法弄明白为什么。

2 个答案:

答案 0 :(得分:1)

多个可能的问题(注意我在PHP中的MySQl时不是专业人员):

我首先删除声明的变量,然后将它们声明为“”,然后再将它们声明为我想要的值。

你说的地方:

$query = mysql_query("INSERT INTO users VALUES('','$fn','$ln','$em','$pswd','$d','0')");

看起来你有第一个变量等于什么,哪个(特别是如果这是主键)会导致MySQL死亡。

接下来要尝试的两件事是:

mysql_connect("localhost","root","250317") or die(myspq_error());

最后看起来像拼写错误,尝试用

替换它
or die (mysql_error()); 

如果在尝试它不起作用后请告诉我们:) 祝你好运!

更新:

以下是几个月前我写的一个工作数据库连接和插入的示例,我认为它可以帮助您检测任何错误或拼写错误。

<?php

/**
* @author Steven Byrne
* @copyright 2012
* @version 5.2
 */

  if(isset($_POST['btn'])){
     $btn       = mysql_real_escape_string($_POST['btn']);
     $username  = mysql_real_escape_string($_POST['username']);
     $email     = mysql_real_escape_string($_POST['email']);
     $name      = mysql_real_escape_string($_POST['name']);

          $link = mysql_connect('localhost','username','password') or die(mysql_error(). "Could not connect to database.");
 $dbsel= mysql_select_db('database', $link) or die("Couldn't select database");


    //Your validation code


    //MySQL

            $donation_date = date(Ymd);
    $sql = "INSERT INTO mcdonations (username,email,name,amount,date)
                           VALUES ('$username','$email','$name','$name','$donation_date')";
        $result = mysql_query($sql) or die(mysql_error() . "<P>" . $sql);
        exit();
    }
?>

答案 1 :(得分:0)

由于我的评论实际上是您问题的答案,我会将其正式化。

您正在接收此错误,因为您没有启用PHP简写。那么为什么

<?
    mysql_connect("localhost","root","250317") or die(myspq_error());
    mysql_select_db("bakpakk");
?>

无效。用

替换此块
<?php
    mysql_connect("localhost","root","250317") or die(myspq_error());
    mysql_select_db("bakpakk");
?>

瞧。