Проблем със записване на данни в MySQL таблица

maxaffey

Registered
Здравейте,

имам следните скриптове за записване на данни в база данни:

фаил: form.php
Код:
<form action="insert.php" method="post"> 
First Name: <input type="text" name="first"><br> 
Last Name: <input type="text" name="last"><br> 
Phone: <input type="text" name="phone"><br> 
Mobile: <input type="text" name="mobile"><br> 
Fax: <input type="text" name="fax"><br> 
E-mail: <input type="text" name="email"><br> 
Web: <input type="text" name="web"><br> 
<input type="Submit"> 
</form>


insert.php
Код:
<? 
$user="BOBI"; 
$password="11111"; 
$database="TEST";  

$first=$HTTP_POST_VARS['first']; 
$last=$HTTP_POST_VARS['last']; 
$phone=$HTTP_POST_VARS['phone']; 
$mobile=$HTTP_POST_VARS['mobile']; 
$fax=$HTTP_POST_VARS['fax']; 
$email=$HTTP_POST_VARS['email']; 
$web=$HTTP_POST_VARS['web']; 

mysql_connect(localhost,$user,$password); 
@mysql_select_db($database) or die( "Unable to select database"); 

$query = "INSERT INTO contacts VALUES ('','$first','$last','$phone','$mobile','$fax','$email','$web')"; 
mysql_query($query); 

mysql_close(); 
?>

но в таблицата в MySQL ми записва само поредния номер на записа а останалите полета остават празни, въпреки че и в тях пиша някакви данни!

таблицата е създадена така:



Код:
<? 
$user="BOBI"; 
$password="11111"; 
$database="TEST"; 
mysql_connect(localhost,$user,$password); 
@mysql_select_db($database) or die( "Unable to select database"); 
$query="CREATE TABLE contacts (id int(6) NOT NULL auto_increment,first varchar(15) NOT NULL,last varchar(15) NOT NULL,phone varchar(20) NOT NULL,mobile varchar(20) NOT NULL,fax varchar(20) NOT NULL,email varchar(30) NOT NULL,web varchar(30) NOT NULL,PRIMARY KEY (id),UNIQUE id (id),KEY id_2 (id))"; 
mysql_query($query); 
mysql_close(); 
?>


Тези скриптове даже съм ги взел някъде из този сайт, но немога да разбера, защо не бачкат?!?


Моля за предложения какво и къде бъркам?

Мерси предварително
 
Първо конекцията трябва да има 4 параметъра.
Код:
            $host = 'localhost';
            $username = 'BOBI';
            $password = '11111';
            $dbName = 'TEST';

            $conn = mysqli_connect($host, $username, $password, $dbName);

            if (!$conn) {
                echo 'Connection Failed';
                exit;
            }

Следващото нещо което е неправилно е заявката, в която си пропуснал да зададеш полетата в които да записва. Записва ти ид-то, защото то е ауто инкримент. Ето как би трябвало да изглежда една заявка. Имената на полетата трябва да са толкова колкото са и values. Това са имената на полетата както си ги кръстил в базата.

Код:
$query = "INSERT INTO contacts (first, last) VALUES ('$first','$last')"; 
mysql_query($query);
 
teroristd каза:
Първо конекцията трябва да има 4 параметъра.
Код:
            $host = 'localhost';
            $username = 'BOBI';
            $password = '11111';
            $dbName = 'TEST';

            $conn = mysqli_connect($host, $username, $password, $dbName);

            if (!$conn) {
                echo 'Connection Failed';
                exit;
            }

Следващото нещо което е неправилно е заявката, в която си пропуснал да зададеш полетата в които да записва. Записва ти ид-то, защото то е ауто инкримент. Ето как би трябвало да изглежда една заявка. Имената на полетата трябва да са толкова колкото са и values. Това са имената на полетата както си ги кръстил в базата.

Код:
$query = "INSERT INTO contacts (first, last) VALUES ('$first','$last')"; 
mysql_query($query);

Мерси за отговора, аз имам 4 параметъра за свързване, но са направени така:


$user="BOBI";
$password="11111";
$database="TEST";
mysql_connect(localhost,$user,$password);
@mysql_select_db($database) or die( "Unable to select database");

и щом ми вкарва редове, значи се свързва

Направих заявката по твоя начин и пак ми вкарва само поредния номер. Чудя се дали нещо не е по настройката на сървъра и да има някаква забрана в него, която трябва да премахна?
 
lam3r4370 каза:
С коя PHP версия си? Замени $HTTP_POST_VARS с $_POST

Да виж на това не бях обърнал внимание.

Иначе не виждам причина да не вкарва данните щом си направил заявката както ти казах.
 
lam3r4370 каза:
Няма нужда да посочва колоните, щом вкарва всичко подред

Един ден ще променят таблицата и иди оправяй... По-добре да посочва.
 

Back
Горе