2012-06-14 171 views
0

我有一個HTML表單,一個PHP腳本和一個MySQL數據庫我想通過PHP腳本將表單發佈到MySQL數據庫。我填寫表格並提交,但表格保持不變。我在Ubuntu上使用Lamp設置。PHP不插入到MYSQL表

/var/www/add_review.php 
<? 
$username="user"; 
$password="password"; 
$database="database"; 
$review=$_POST['review']; 
$Cname=$_POST['Cname']; 
$picture=$_POST['picture']; 
$profile=$_POST['Cprofile']; 
$location=$_POST['location']; 
$ratingImg=$_POST['ratingImg']; 
$rating=$_POST['rating']; 
$date=$_POST['date']; 
$Creview=$_POST['Creview']; 
$link=$_POST['link']; 
mysql_connect(localhost,$username,$password); 
@mysql_select_db($database) or die("Unable to select database"); 

$query = "INSERT INTO table VALUES ('$review','$Cname','$picture','$location','$ratingImg','$rating','$date','$Creview','$link')"; 
mysql_query($query); 
if($query) 
{ 
    echo "Success!"; 
} 
else 
{ 
    die(mysql_error()); 
} 
mysql_close(); 
echo "Review Added!"; 
echo "<br />"; 
echo $review; 
echo "<br />"; 
echo $name; 
echo "<br />"; 
echo $picture; 
echo "<br />"; 
echo $profile; 
echo "<br />"; 
echo $location; 
echo "<br />"; 
echo $ratingImg; 
echo "<br />"; 
echo $rating; 
echo "<br />"; 
echo $date; 
echo "<br />"; 
echo $Creview; 
echo "<br />"; 
echo $link; 
?> 

/var/www/add_review.html 
<h1>Add A Drink</h1> 
<form action="add_review.php" method="post"> 
<p>Review # <input type="text" name="review"><br></p> 
<p>UserName <input type="text" name="Cname"><br></p> 
<p>Picture URL <input type="text" name = "picture"><br></p> 
<p>Users Profile URL <input type="text" name = "Cprofile"><br></p> 
<p>Location <input type="text" name = "location"><br></p> 
<p>Star URL <input type="text" name = "ratingImg"><br></p> 
<p>Star Value <input type="text" name = "rating"><br></p> 
<p>Date(MMDDYYYY) <input type="text" name = "date"><br></p> 
<p>Users Review<br> <textarea name="Creview"></textarea><br></p> 
<p>Review Link <input type="text" name = "link"><br></p> 
<input type="submit" value="Submit"> 
</form> 

MySQL表

+-----------+-------------+------+-----+---------+-------+ 
| Field  | Type  | Null | Key | Default | Extra | 
+-----------+-------------+------+-----+---------+-------+ 
| review | int(11)  | YES |  | NULL |  | 
| Cname  | varchar(20) | YES |  | NULL |  | 
| picture | text  | YES |  | NULL |  | 
| Cprofile | text  | YES |  | NULL |  | 
| location | varchar(30) | YES |  | NULL |  | 
| ratingImg | text  | YES |  | NULL |  | 
| rating | float  | YES |  | NULL |  | 
| date  | int(11)  | YES |  | NULL |  | 
| Creview | text  | YES |  | NULL |  | 
| link  | text  | YES |  | NULL |  | 
+-----------+-------------+------+-----+---------+-------+ 

我想不出什麼我做錯了!請幫忙。

+1

你會得到什麼錯誤? – skos

+3

請不要將'mysql_ *'函數用於新代碼。他們不再被維護,社區已經開始[棄用流程](http://goo.gl/KJveJ)。請參閱[**紅框**](http://goo.gl/GPmFd)?相反,您應該瞭解[準備好的語句](http://goo.gl/vn8zQ)並使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli的)。如果你不能決定,[本文](http://goo.gl/3gqF9)將有助於選擇。如果你關心學習,[這裏是很好的PDO教程](http://goo.gl/vFWnC)。 –

+0

@Truth,完全將竊取您的評論以供將來使用! –

回答

1

您似乎沒有提供CProfile的值,這可能會導致某種錯誤。

1

在您的INSERT語句中,int值不需要引號。

從現在開始,請提供錯誤信息(如果您沒有看到一個,看它在Apache錯誤日誌)

1

嘗試指定的列在您的查詢:

$query = <<<EOQ 

INSERT INTO yelpreviews(review, Cname, picture, location, 
         ratingImg, rating, `date`, Creview, link) 
VALUES('$review','$Cname','$picture','$location', 
     '$ratingImg','$rating','$date','$Creview','$link') 

EOQ; 
0

做什麼你的意思是$_POST['image']?你在上傳圖片嗎?如果是這樣,我相信你在表單屬性上使用enctype = multipart/form-data,並且使用$ _FILE ['image'] ['name']來獲取圖像的名稱。

還有一件事,你應該使用mysql_real_escape_string($_POST['string'])來防止mysql注入。也不要在整數值之間使用引號。

+0

儘可能$ _POST ['圖像']我只是進入圖像的網址。 – UnbrandedTech