【问题标题】:Mysql_query won't send to a databaseMysql_query 不会发送到数据库
【发布时间】:2023-04-07 21:53:01
【问题描述】:

我正在为一个网站创建一个注册页面。当我提交表单时,数据不会发送到数据库。有谁知道为什么会这样?以下代码来自名为 register.php 的脚本我不明白为什么它不会发送到我的 mysql 数据库。昨晚我遇到了一个错误“phpMyAdmin - 错误无法在没有错误的情况下启动会话,请检查您的 PHP 和/或网络服务器日志文件中给出的错误并正确配置您的 PHP 安装。” 但现在它的工作。会不会是从那里来的?

<?php
echo "<h1>Register</h1>";

$submit = filter_input(INPUT_POST, 'submit');
//form data
$fullname = strip_tags (filter_input(INPUT_POST, 'fullname'));
$username = strtolower(strip_tags (filter_input(INPUT_POST, 'username')));
$password = strip_tags(filter_input(INPUT_POST, 'password'));
$repeatpassword = strip_tags(filter_input(INPUT_POST, 'repeatpassword'));
$date = date("Y-m-d");


if ($submit)
{
//open database
$connect=mysql_connect("localhost","root","mypasswordwouldgohere");
mysql_select_db("phplogin");

$namecheck = mysql_query("SELECT username FROM users WHERE username='$username'" );
$count = mysql_num_rows($namecheck);

if($count!=0)
{
die("Username already taken, please choose another");
}

//check for existence
if($fullname&&$username&&$password&&$repeatpassword)
{
    if ($password==$repeatpassword)
    {
    //check char length of username and fullname
        if (strlen($username)>25||strlen($fullname)>25)
        {
        echo "Length of username or full name is too long!";
        }
        else
        {
        //check password length 
            if (strlen ($password)>25 || strlen ($password)<6)
            {
            echo "Password must be between 6 and 25 characters";
            }
            else
            {
            $password = md5($password);
            //register user 


            $queryreg = mysql_query("INSERT INTO users VALUES           ('','$fullname','$username','$password','$date',)");
            die ("You have been registered! <a href='index.php'>Return  to the login page</a>");



            }   
        }   
    }
    else echo "Your passwords do not match";
}
else echo "Please fill in <b>all</b> fields!";

}


?>
<p>
<html>

<form action='register.php' method='POST'>
<table>
    <tr>
        <td>
        Your full name:
        </td>
        <td>
        <input type='text' name='fullname' value='<?php echo $fullname;?>'>
        </td>

    </tr>

    <tr>
        <td>
        choose a username:
        </td>
        <td>
        <input type='text' name='username' value='<?php echo $username;?>'>
        </td>

    </tr>


    <tr>
        <td>
        Choose a password:
        </td> 
        <td>
        <input type='password' name='password'>
        </td>

    </tr>

    <tr>
        <td>
        Repeat your password:
        </td> 
        <td>
        <input type='password' name='repeatpassword'>
        </td>
    </tr>

<table>
<p>
<input type='submit' name='submit' value='Register'>

</form>

【问题讨论】:

  • 提示#1:使用mysql_error()找出问题,例如,mysql_query($sql) or die(mysql_error()); 提示#2:切换到PDOmysql_ 函数已过时,不应再使用。
  • 您是否按照建议“检查了 PHP 和/或网络服务器日志文件中给出的错误”?
  • 在每个查询上使用 mysql_error() 以确保它正常工作,如果不正常,告诉你问题是什么。
  • 用户表的数据类型是什么?
  • 1 id - int 2 名称 - varchar 3 用户名 - varchar 4 密码 - varchar 5 日期 - 日期

标签: php mysql send


【解决方案1】:

您在此处遇到 SQL 语法错误 "INSERT INTO users VALUES ('','$fullname','$username','$password','$date',)"。删除查询中的最后一个“,”。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-03-14
    • 1970-01-01
    • 1970-01-01
    • 2020-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多