简体   繁体   English

无法使用PHP插入MySQL表

[英]Can't Insert into MySQL Table using PHP

Having trouble inserting new records into a table. 在将新记录插入表时遇到麻烦。 Anybody care to help? 有人愿意帮助吗?

<?php include('config.php'); ?>
<?php 

if(!empty($_POST['forename']) && !empty($_POST['surname']) && !empty($_POST['email']) && !empty($_POST['emailconfirm']) && !empty($_POST['password'])) {
    if($_POST['email'] == $_POST['emailconfirm']) {
        $forename = mysql_real_escape_string($_POST['forename']);
        $surname = mysql_real_escape_string($_POST['surname']);
        $email = mysql_real_escape_string($_POST['email']);
        $password = md5(mysql_real_escape_string($_POST['password']));
        register();
    }
    else { $errormessage = "Emails do not match"; }
}
else { $errormessage = "Not all fields filled"; }

function register() {
$check = mysql_query("SELECT * FROM Users WHERE EmailAddress = '".$email."'");
    if (mysql_num_rows($check) == 1) {
        $errormessage = "Account already exists with the email address provided";
    }
    else {
        $register = mysql_query("INSERT INTO Users (EmailAddress, Password, Forename, Surname) VALUES('".$email."', '".$password."', '".$forename."', '".$surname."')");
        $errormessage = "Account Added";
    }
}
?>

I think the problem lies within the MySQL Query Statement? 我认为问题出在MySQL查询语句中?

The variables in your register function are out of scope. 您的register函数中的变量超出范围。 Need to globalize them. 需要全球化。

function register() {
    global $email, $password, $forename, $surname, $errormessage;

    $check = mysql_query("SELECT * FROM Users WHERE EmailAddress = '".$email."'");
    if (mysql_num_rows($check) == 1) {
        $errormessage = "Account already exists with the email address provided";
    }
    else {
        $register = mysql_query("INSERT INTO Users (EmailAddress, Password, Forename, Surname) VALUES('".$email."', '".$password."', '".$forename."', '".$surname."')");
        $errormessage = "Account Added";
    }
}

No params pass to the function register() ?? 没有参数传递给函数register() In this file, you want to use register() to add record to the sql. 在此文件中,您要使用register()将记录添加到sql。 But how could the register() know what value should be use for $mail variable? 但是register()如何知道$mail变量应该使用什么值? You can use global in register() in this way: 您可以通过以下方式在register()中使用global

global  $email, $password, $forename, $surname, $errormessage;

Or you can rewrite the register() as 或者您可以将register()重写为

function register($email, $password, $forename, $surname, $errormessage){....}

And pass the params to register($email, $password, $forename, $surname, $errormessage) 并传递参数进行register($email, $password, $forename, $surname, $errormessage)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM