Php 为什么我的用户被添加到一个表而不是另一个表

Php 为什么我的用户被添加到一个表而不是另一个表,php,mysql,Php,Mysql,我正在为我的用户创建一个个人资料图像上传系统。注册后,php代码应在“user”表中创建一个用户,并在“profileImg”表中创建一个用户。我的日志中没有错误,但是用户被添加到“user”中,而不是“profileImg”。谁能帮忙吗。先谢谢你 SIGNUP.INC.PHP: <?php session_start(); include '../dbh.php'; $respond = array( 'status' => true, 'message'

我正在为我的用户创建一个个人资料图像上传系统。注册后,php代码应在“user”表中创建一个用户,并在“profileImg”表中创建一个用户。我的日志中没有错误,但是用户被添加到“user”中,而不是“profileImg”。谁能帮忙吗。先谢谢你

SIGNUP.INC.PHP:

<?php  
session_start();
include '../dbh.php';

$respond = array(
    'status'   => true,
    'message'  => 'There was an error',
    'redirect' => '../profile.php',
    'errors',
);

if (isset($_POST['submit'])) {

    $first = mysqli_real_escape_string($conn, $_POST['first']);
    $last = mysqli_real_escape_string($conn, $_POST['last']);
    $email = mysqli_real_escape_string($conn, $_POST['email']);
    $pwd = mysqli_real_escape_string($conn, $_POST['pwd']);

    $errorEmpty = false;
    $errorEmail = false;


if (empty($first) || empty($last) || empty($email) || empty($pwd)) {

    $respond['errors'][] = "Please fill out all fields!";
    $respond['errorEmpty'] = true;

} elseif (!filter_var($email, FILTER_VALIDATE_EMAIL)) {

    $respond['errors'][] = "Please enter a valid email address!";
    $respond['errorEmail'] = true;

} else {

    $sql = "SELECT email FROM user WHERE email='$email'";
    $result = mysqli_query($conn, $sql);
    $emailcheck = mysqli_num_rows($result);


    if ($emailcheck > 0) {
        $respond['errors'][] = "That email address already exists!";
        $respond['errorEmail'] = true;
    } 



else {
    $encryptpwd = password_hash($pwd, PASSWORD_DEFAULT);
    $sql = "INSERT INTO user (first, last, email, pwd)
    VALUES ('$first', '$last', '$email', '$encryptpwd')";
    $result = mysqli_query($conn, $sql);

    $sql = "SELECT * FROM user WHERE email='$email' AND first='$first'";
    $result = mysqli_query($conn, $sql);

    if (mysqli_num_rows($result) > 0) {
        while ($row = mysqli_fetch_assoc($result)) {
            $email = $row['id'];
            $sql = "INSERT INTO profileImg (email, status)
                    VALUES ('$email', 1)";

        }
    }


    }

}
}
echo json_encode($respond);
?>

这必须是数据库级别的冲突

看看你的这一块:

if (mysqli_num_rows($result) > 0) {
    while ($row = mysqli_fetch_assoc($result)) {
        $email = $row['id'];
        $sqlProfile = "INSERT INTO profileImg (email, status)
                VALUES ('$email', 1)";
    }
}

我很确定在您的数据库中,profileImg表的email列是一个varchar,尽管您将它作为int
$email=$row['id']插入

将该行替换为this
$email=$row['email']


更改后的代码:

if (mysqli_num_rows($result) > 0) {
    while ($row = mysqli_fetch_assoc($result)) {
        $email = $row['email'];
        $sqlProfile = "INSERT INTO profileImg (email, status)
                VALUES ('$email', 1)";
        mysqli_query($conn, $sqlProfile);
    }
}

更新:添加
mysqli\u查询($conn,$sqlProfile)
要执行查询

请尝试替换
mysqli\u num\u行
上受影响的mysqli\u行
。文档在这里-为什么不在用户表中为个人资料照片添加一个字段?没有理由只为他们的个人资料照片创建一个全新的表格。我以前尝试过,但我只是重试了一下,结果是一样的。将用户添加到“user”而不是“profileImg”上载两个表结构并查看我的上次更新