2013-04-02 2 views
0

Спасибо вам, ребята, работали его, оказывается, это было в Js слова не было написано правильно, всегда что-то простоеPHP не писать на первое поле SQL

Это мой скрипт для записи данных в моей базе данных на моем локальном сервере, он в настоящее время пишет только 2 поля, а не псевдоним, я сделал что-то не так? Я трижды проверил имена как в форме html, так и в поле базы данных.

<?php 
    // 1. Create connection to database 

    mysql_connect('localhost','root','') or die('Could not connect to mysql: <hr>'.mysql_error()); 

    // 2. Select database 

    mysql_select_db("trialdb") or die('Could not connect to database:<hr>'.mysql_error()); 

    // 3. Assign variables (after connection as required by escape string) 

$alias = $_POST['alias']; 
$name = $_POST['name']; 
$email = $_POST['email']; 

    // 4. Insert data into table 

    mysql_query("INSERT INTO user_data (alias, name, email) VALUES ('$alias', '$name', '$email')"); 
    Echo 'Your information has been successfully added to the database.'; 
    print_r($_POST); 
    mysql_close() 
?> 
+1

вы проверили, если '$ _POST []' переменные возвращают значения –

+0

1; Не используйте 'mysql_query'. 2; Конечно, не вводите '$ _POST' дословно в запрос. 3; Вы пытались повторить запрос, который он будет запускать? Посмотрите, что у вас есть значения в '$ _POST', а также дает возможность выполнить прямо на БД. –

+1

Что дает результат print_r ($ _ POST)? – shannonman

ответ

0

Прежде всего, вы всегда должны проверить, если POST переменные посылаются правильно:

if (
    !isset($_POST['alias']) or 
    !isset($_POST['name']) or 
    !isset($_POST['email']) 
) // something is wrong 

Во-вторых, вы не хотите, чтобы ввести пользовательский ввод непосредственно в запросе SQL. Вы должны выполнить некоторые спасаясь первого (или даже лучше заменить mysql_* устаревшие драйверы с PDO или mysqli и просто использовать prepared statements):

$alias = mysql_real_escape_string($_POST['alias']); 
$name = mysql_real_escape_string($_POST['name']); 
$email = mysql_real_escape_string($_POST['email']); 

В-третьих, вы можете проверить, если запрос выполняется правильно перед печатью сообщения об успешном:

$res = mysql_query("INSERT INTO user_data (alias, name, email) VALUES ('$alias', '$name', '$email')"); 

echo ($res) 
    ? 'Your information has been successfully added to the database.' 
    : 'Your information couldn't be added to the database'; 
0

вы можете попробовать

<?php 

$conn = mysql_connect('localhost','root','') or die('Could not connect to mysql: '.mysql_error()); 

mysql_select_db("trialdb", $conn) or die('Could not connect to database:'.mysql_error()); 

$alias = $_POST['alias']; 
$name = $_POST['name']; 
$email = $_POST['email']; 

mysql_query("INSERT INTO user_data (`alias`, `name`, `email`) VALUES ('$alias', '$name', '$email')", $conn); 

echo 'Your information has been successfully added to the database.'; 

print_r($_POST); 

mysql_close(); 

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