2014-12-22 6 views
-1

Я пытаюсь создать новую учетную запись на своем веб-сайте с помощью метода INSERT INTO mySQL в моем PHP-файле. По какой-то причине база данных не получает информацию, которую я отправляю на нее. Мой вопрос: как я могу создать новую учетную запись с php? Первая часть моего PHP-кода - это просто проверка текста, представленного на странице html.Как я могу вставить информацию в мою базу данных MYSQL из PHP для моего сайта?

Это мой php-код, который я использую для проверки и отправки данных в мою базу данных, размещенную через 000webhost.com.

<?php 

$host=""; // Host name (all these are correctly filled in in my code) 
$username=""; // username 
$password=""; // password 
$db_name=""; // Database name 
$tbl_name=""; // Table name 


mysql_connect("$host", "$username", "$password"); 
mysql_select_db("$db_name"); 

$myusername=mysql_real_escape_string($_POST['username']); 
$mypassword1=mysql_real_escape_string($_POST['pass1']); 
$mypassword2=mysql_real_escape_string($_POST['pass2']); 
$myemail=mysql_real_escape_string($_POST['email']); 
$myfirst=mysql_real_escape_string($_POST['first']); 
$mylast=mysql_real_escape_string($_POST['last']); 

if(!($mypassword2 == $mypassword1)){ 
    $message = "passwords do not match!"; 
    echo "<script type='text/javascript'>alert('$message');</script>"; 
} 
else{ 

$sql="SELECT * FROM $tbl_name WHERE username='$myusername' or email='$myemail'"; 
$result=mysql_query($sql); 


$count=mysql_num_rows($result); 
echo $myusername; 

if($count > 0){ 
    $message = "Username or Email already in use!"; 
    echo "<script type='text/javascript'>alert('$message');</script>"; 
} else { 
    $sql = 'INSERT INTO users (`id`, `username`, `password`, `first`, `last`, `email`, `grade`,    `skype`, `phone`, `credentials`) 
VALUES (NULL, \'$myusername\', \'$mypassword1\', \'$myfirst\', \'$mylast\', \'$myemail\', NULL, NULL, NULL, NULL);'; 

$message = "inserted!"; 
    echo "<script type='text/javascript'>alert('$message');</script>"; 
} 

} 

HTML КОД:

<form name="create_account" method ="post" action="php/new_account.php"> 
       <fieldset class="account-info"> 
        <label> First <input type="text" name="first" placeholder="First"> </label> 
        <label> Last <input type="text" name="last" placeholder="Last"> </label> 
        <label> Email <input type="text" name="email" id="email" placeholder="Email">   </label> 
       <label> Username <input type="text" name="username" id="username" placeholder="Username"> </label> 
       <label> Password <input type="password" name="pass1" id="pass1" placeholder="Password"> </label> 
       <label> Confirm Password <input type="password" name="pass2" id="pass2" placeholder="Confirm Password" onkeyup="checkPass(); return false;"> </label> 
       <span id="confirmMessage" class="confirmMessage"></span> 
      </fieldset> 
      <fieldset class="account-action"> 
       <input class="btn" type="submit" name="submit" value="Submit"> 
       <a href="login.html" id="log"> Login </a> 
      </fieldset> 
     </form> 

База данных изображений: http://i.stack.imgur.com/oiwur.png

+3

Этот вопрос название ужасно. И функции 'mysql_' устарели; используйте PDO или 'mysqli_'. – developerwjk

ответ

3

Вы не запускали запрос вообще. Это только строка:

$sql = 'INSERT INTO users (`id`, `username`, `password`, `first`, `last`, `email`, `grade`,    `skype`, `phone`, `credentials`) 
VALUES (NULL, \'$myusername\', \'$mypassword1\', \'$myfirst\', \'$mylast\', \'$myemail\', NULL, NULL, NULL, NULL);'; 

Вам нужно запустить его с

mysql_query($sql, $connection); 

Кроме того, вы должны поставить соединение в переменной:

$connection = mysql_connect("$host", "$username", "$password"); 

Вы используете устаревшая библиотека. mysql_ устарел, и вы очень уязвимы для SQL-инъекции. Вы должны изменить свое соединение на mysqli_ или PDO и использовать prepared statements!

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