2015-04-28 5 views
0

Мне нужно соединить html-форму с моей базой данных sql, и я начинаю с простой формы, чтобы понять, как она работает. Я не могу понять, что я делаю неправильно. У меня есть созданная форма, скрипт php и база данных. Всякий раз, когда я отправляю форму, она берет меня на пустую страницу, и в мою базу данных ничего не добавлено. Я писал сообщения об ошибках, если соединения терпят неудачу, но я их тоже не вижу. Я не настолько продвинутый в программировании, может кто-то мне помочь?Почему мои данные не отправляются в мою базу данных?

index1.html

<html> 
<body> 
<form action="info.php" method="post"> 

<p>Username:<input type="text" name="username" /></p> 
<p>Email:<input type="text" name="email" /></p> 
    <input type="submit" value="Submit"/> 


</form> 

</body> 
</html> 

info.php

<?php 

define('DB_NAME' , 'users'); 
define('DB_USER' , 'root'); 
define('DB_PASSWORD' , ''); 
define('DB_HOST' , 'localhost'); 

$link = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD); 
//connection to host 
if (!$link) { 
    die('Could not connect: ' . mysql_error()); 
} 
//error if not connected to host 

$db_selected = mysql_select_db(DB_NAME, $link); 
//select the database 

if(!$db_selected){ 
    die('Can\'t use ' . DB_NAME . ':' . mysql_error()); 
} 

echo 'Connected successfully'; 

$value = $_POST['username']; 
$value2 = $_POST['email']; 

$sql = "INSERT INTO guests (username, email) VALUES ('$value', '$value2')"; 

if(!mysql_query($sql)){ 
die('Error: ' . mysql_error()); 
} 
//error check to see if connected to tables 

mysql_close(); 
//close connection 
?> 
+2

Ваш код проверяется. Я уверен, вам нужно будет использовать mysqli_ или PDO. Об этом сообщают об ошибках. http://php.net/manual/en/function.error-reporting.php –

+0

Не забудьте сохранить код: http://php.net/manual/en/function.mysql-real-escape-string .php – zeflex

+1

Необходимо включить отчет об ошибках. –

ответ

-1

Попробуйте этот запрос:

INSERT INTO guest set username=$value1,email=$value2

надеюсь, что он будет решать.

+1

нет, это еще хуже. Кроме того, мы имеем дело со строками здесь –

+0

Что не так с этим вопросом по проблеме? –

+0

Можете ли вы показать мне свой код формы html –

-2

Попробуйте это, оно должно работать на вас.

$ sql = "INSERT INTO гости (имя пользователя, адрес электронной почты) VALUES (". $ Value. ",". $ Value2. ")";

+0

это еще хуже. –

0

Как я уже говорил в комментариях; ваш код mysql_ проверяется, поэтому, скорее всего, вам нужно использовать либо mysqli_, либо PDO, так как функции mysql_ могут быть очень полезными для вас.

Если для вас не работает переписывание mysqli_, проблема будет идти глубже и будет вне сферы действия вопроса.

Использование error reporting будет/должно подтвердить это. Обратитесь к «Сноскам» о том, как использовать его в файлах PHP.

<?php 

define('DB_NAME' , 'users'); 
define('DB_USER' , 'root'); 
define('DB_PASSWORD' , ''); 
define('DB_HOST' , 'localhost'); 

$link = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME); 
//connection to host 
if (!$link) { 
    die('Could not connect: ' . mysqli_error($link)); 
} 


echo 'Connected successfully'; 

$value = mysqli_real_escape_string($link,$_POST['username']); 
$value2 = mysqli_real_escape_string($link,$_POST['email']); 

$sql = "INSERT INTO guests (username, email) VALUES ('$value', '$value2')"; 

if(!mysqli_query($link, $sql)){ 
die('Error: ' . mysqli_error($link)); 
} 
//error check to see if connected to tables 

else{ 
echo "Data entered"; 
} 

mysqli_close($link); 
//close connection 
?> 

Ссылки:


Сноски:

Добавить error reporting в верхней части файла (ов), который поможет найти ошибки.

<?php 
error_reporting(E_ALL); 
ini_set('display_errors', 1); 

// rest of your code 

Sidenote: Сообщения об ошибках не должно быть сделано только в постановке, и никогда производства.

  • Убедитесь, что ваш сервер работает и правильно настроен для PHP/MySQL/Apache.

  • Убедитесь, что ваши столбцы действительно являются VARCHAR и достаточно длинны для размещения данных.

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