2012-04-07 121 views
0

嗨,那裏做了一個有數據庫的小項目(對他們沒有太多的經驗)。我正在使用mySQL和php,對php有點麻煩,並將HTML表單中的信息發佈到數據庫。用php向數據庫添加信息

下面是代碼:

<?php 
$host=""; // Host name 
$username=""; // Mysql username 
$password=""; // Mysql password 
$db_name=""; // Database name 
$tbl_name="tags"; // Table name 

// Connect to server and select database. 
mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot select DB"); 

// get data that sent from form 
$s_name=$_GET['name']; 
$s_system=$_GET['system']; 
$s_cate=$_GET['cate']; 

$sql="INSERT INTO $tbl_name(name,system,cate)VALUES('$s_name', '$s_system', '$s_cate')"; 
$result=mysql_query($sql); 

if($result){ 
echo "Successful<BR>"; 
echo "<a href=mainforum.php>View your topic</a>"; 
} 
else { 
echo "ERROR"; 
} 
mysql_close(); 
?> 

如果有人可以幫助解釋給我什麼,我做錯了,多少會非常可以理解的。

THANKS

這裏是爲了什麼,我試圖做一個鏈接:

http://socialsoftware.purchase.edu/roger-p.king/database2/enter_gamertag.html

+1

嘗試打印的'$ s_name'和'$ sql'值,看看它們包含的內容。 – 2012-04-07 15:09:31

+0

我想說的第一種檢查是否寫入的方法是,像AJ所說的那樣,echo $ sql,然後將它打印的內容複製到MySQL查詢屏幕中,看看是否出現錯誤。這樣你就可以知道錯誤是在你的INSERT查詢中,還是在其他地方。 這通常是我如何調試我的查詢......你也可以在if($ result)中結合兩個回聲來回顯「成功
,但你可能已經知道了這個 – 2012-04-07 15:17:16

回答

0

ü應該使用$ _ POST [ '變量'],而不是$ _GET

因爲$ _GET是鏈接上的變量數組

如「http://example.com/?var=123」,$ _GET ['var']的值是123

形式的變量可以通過$ _POST [ '變種']或$ _REQUEST [ '變種']獲得

+0

使用GET沒有任何問題,除非他使用它來發送敏感信息,否則可以使用得到。 – Kishor 2012-04-07 15:47:10

+0

你可以告訴我的錯誤消息:D – 2012-04-07 15:49:25

+0

它不一定是一個錯誤消息,它只是當你提交論壇,它需要if else語句檢查,並沒有發佈什麼輸入在表格 – user1308214 2012-04-07 22:38:04

0

$query = mysql_query("INSERT INTO '$tbl_name'(name,system,cate)VALUES('$s_name', '$s_system', '$s_cate')";

這應該做,或者如果你這樣做在2號線的方式,

$sql="INSERT INTO '$tbl_name'(name,system,cate)VALUES('$s_name', '$s_system', '$s_cate')";

$result=mysql_query($sql);

+0

我剛試過這個,它仍然不起作用。仍然給其他語句錯誤。 – user1308214 2012-04-07 21:07:41

+0

難道這是我創建phpmyadmin上的字段? – user1308214 2012-04-07 21:08:38

+0

你可以複製你運行的錯誤嗎? – Kishor 2012-04-08 00:10:14