2010-08-08 3 views
0

Не удалось вставить новые записи в таблицу. Кто-нибудь должен помочь?Невозможно вставить в таблицу MySQL, используя 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"; 
    } 
} 
?> 

Я думаю, что проблема заключается в заявлении о запросе MySQL?

+0

Вы получаете сообщение об ошибке? Если так, то, что это? –

+0

Aaron W .: Нет сообщения об ошибке, он вставляет пробелы в таблицу – ritch

ответ

1

Переменные в вашей функции register не входят в сферу действия. Необходимо глобализовать их.

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"; 
    } 
} 
+4

* Yikes! * Не ссылайтесь на них как на глобальные. Передайте их. Нет никаких причин *, чтобы они считались глобальными. – Charles

+0

Спасибо за это. – ritch

0

Нет параметров перейти к функции register() ?? В этом файле вы хотите использовать register(), чтобы добавить запись в sql. Но как мог register() знать, какое значение следует использовать для переменной $mail? Вы можете использовать global в register() таким образом:

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

Или вы можете переписать register() как

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

и передать Params в register($email, $password, $forename, $surname, $errormessage)

Смежные вопросы