English 中文(简体)
Can t 插入MySQL表格,使用PHP
原标题:Can t Insert into MySQL Table using PHP

在表格中插入新的记录。 谁会帮助?

<?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";
    }
}
?>

我认为,问题在于我的SQL Query声明?

最佳回答

您的<代码>登记<>/代码>功能中的变量不属于范围。 需要将其全球化。

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()?? In this file, you want to use register() to add record to the sql. But how could the register() know what value should be use for $mail variable? You can use global in register() in this way:

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

也可将<代码>register()重新编号。

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

并将斜线通过<条码>登记(电子邮箱:$email,$spassword,$ename,$surname,$errormessage)





相关问题
SQL SubQuery getting particular column

I noticed that there were some threads with similar questions, and I did look through them but did not really get a convincing answer. Here s my question: The subquery below returns a Table with 3 ...

please can anyone check this while loop and if condition

<?php $con=mysql_connect("localhost","mts","mts"); if(!con) { die( unable to connect . mysql_error()); } mysql_select_db("mts",$con); /* date_default_timezone_set ("Asia/Calcutta"); $date = ...

php return a specific row from query

Is it possible in php to return a specific row of data from a mysql query? None of the fetch statements that I ve found return a 2 dimensional array to access specific rows. I want to be able to ...

Character Encodings in PHP and MySQL

Our website was developed with a meta tag set to... <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> This works fine for M-dashes and special quotes, etc. However, I ...

Pagination Strategies for Complex (slow) Datasets

What are some of the strategies being used for pagination of data sets that involve complex queries? count(*) takes ~1.5 sec so we don t want to hit the DB for every page view. Currently there are ~...

Averaging a total in mySQL

My table looks like person_id | car_id | miles ------------------------------ 1 | 1 | 100 1 | 2 | 200 2 | 3 | 1000 2 | 4 | 500 I need to ...