首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我的代码不能填充mysql表中的一行?

问为什么我的代码不能填充mysql表中的一行?
EN

Stack Overflow用户
提问于 2013-01-17 00:49:17
回答 2查看 123关注 0票数 0

我正在尝试允许用户注册,代码返回时没有任何错误,但在我的数据库中什么也没有显示。我无论如何也找不到原因。我看不出有什么不对劲,但也许你们中的一个能帮我?

下面是完整的php文件:

代码语言:javascript
复制
<?php

require "includes/constants.php";

$conn = new mysqli(DB_SERVER, DB_USER, DB_PASSWORD, DB_NAME);

if(isset($_POST['username'])) {
    $username = $_POST['username'];
    $uLength = strlen($username);
}

if ($uLength >= 4 && $uLength <= 15)
{
}
else
{
    die("Your username must be between 4 and 15 characters.");
}

if($username == "")
{
    die("You didn't tell me what to call you! Please enter a username.");
}

if(isset($_POST['pwd'])) {
    $pwd = $_POST['pwd'];
    $pLength = strlen($pwd);
}

if ($pLength >= 6 && $pLength <= 41)
{
}
else
{
    die("Password must be between 6 and 41 characters.");
}

if($pwd == "")
{
    die("Please enter a password and verify it.");
}

if(isset($_POST['pwd_conf'])) {
    $pwd_conf = $_POST['pwd_conf'];
}
if($pwd != $pwd_conf)
{
    die("Ouch! Your passwords don't match! Try again.");
}

if(isset($_POST['email'])) {
    $email = $_POST['email'];
    $email1 = "@";
    $email_check = strpos($email,$email1);
}

$user_check = "SELECT username FROM users WHERE username='$username'";
if($stmt = mysqli_prepare($conn,$user_check)) {
    mysqli_stmt_execute($stmt);

    if(mysqli_stmt_num_rows($stmt) > 0){
        die("Username is already in use!<br>");
    }
}

$query = "INSERT INTO users (username, password, email) VALUES ('$username', '$pwd', '$email')";

if(!$query)
{
    die("Unfortunately, we can't sign you up because we have problems: ".mysql_error());
}
else
{
    header("Location: login.php");
}

?>    
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-01-17 00:52:06

您构建了一个查询字符串,但从未执行过它...

代码语言:javascript
复制
1. $sql = "INSERT ..."
2. ???
3. come to SO to ask why

还要注意,您混合了mysqli和mysql调用(特别是在定义插入查询之后的mysql_error调用。这两个库不可互换,并且彼此不兼容

还要注意,当您使用预准备语句时(耶!)您完全不正确地使用它们(嘘,嘘),并且容易受到SQL injection attacks的攻击。

票数 1
EN

Stack Overflow用户

发布于 2013-01-17 00:57:29

如果(!$query)发生其他情况,则需要先使用mysql_query()函数

代码语言:javascript
复制
$result = mysql_query($query);
if(!$result){
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14363479

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档