[英]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.