2012-01-06 153 views
-2

我希望能夠從下拉列表中選擇一個類別,並根據類別將它添加到任何SQL表與它相等。

<?php 

$article = $_POST['article']; 

$con = mysql_connect("******","******","*******"); 
if (!$con) 
    { 
    die('Could not connect: ' . mysql_error()); 
    } 

mysql_select_db("jstaltso_staltsoft", $con); 

$sql="INSERT INTO $article (headline, content) 
VALUES ('$_POST[headline]', '$_POST[content]')"; 

if (!mysql_query($sql,$con)) 
    { 
    die('Error: ' . mysql_error()); 
    } 
echo "Content Added!"; 
echo "<br/>"; 
echo "<a href='articles.php'><- Back</a>"; 

mysql_close($con) 

?> 

我想要的變量$文章是在的地方,你出表的名稱。

$sql="INSERT INTO $article (headline, content) 
VALUES ('$_POST[headline]', '$_POST[content]')"; 

所以無論我在下拉列表中選擇什麼,它都會把它放在$ articles。

+4

可愛的SQL注射孔你已經到了那裏。 – 2012-01-06 14:34:24

+0

是的,變量坐在查詢字符串就像$ _POST ['東西'](注意你忘了用你的POST數組的索引使用引號或雙引號)......但是,這是什麼問題?另外,使用$ _POST這種方式是非常不安全的,你知道的。 – Alfabravo 2012-01-06 14:34:50

+2

所以你的問題在哪裏? – rjv 2012-01-06 14:34:54

回答

3

嘗試:

"INSERT INTO `{$article}` ...." 

不要忘記淨化你的輸入! (mysql_real_escape_string,對於初學者)

+0

我只是得到這個錯誤:錯誤:錯誤的表名'' – NizeGuy 2012-01-06 14:45:34

+1

如果你得到錯誤的表名後跟'',在我看來,變量$文章沒有被設置爲一個值。 – 2012-01-06 15:13:34

+0

非常感謝!它現在有效:D – NizeGuy 2012-01-06 15:23:24

1

您不能使用該類型的變量,最後的代碼更改爲 $sql="INSERT INTO $article (headline, content) VALUES ('" . $_POST['headline'] " . ', '" . $_POST['content'] . "')";

+0

爲什麼?那不需要! – rjv 2012-01-06 14:40:25

+0

當然,您無法訪問該引號中的數組變量。 – Dion 2012-01-06 14:42:10

+0

簡單變量,如$變量,你可以訪問,但不是那種類型.. – Dion 2012-01-06 14:42:41

0

我知道這個答案會不會對你來說有幫助的權利,但SICE有實在太多該代碼和該方法錯誤,這裏有一些提示:

  • 使用PDO代替PHP的MySQL函數。起初看起來令人望而生畏,尤其是如果你沒有使用面向對象編程方面的經驗的話,但是這絕對是值得的。
  • 淨化即$article的價值!if($article == 'foo' || $article == 'bar') {...}
  • 在字符串中使用變量的最佳方法是:"This is a ".$adjective." string""This is a {$adjective} string"
+0

我'遠離PHP和SQL的遠程技術熟練,這只是我應該做的一件簡單的事情,我不時嘗試使用form。 但我會嘗試着看PDO。 – NizeGuy 2012-01-06 14:57:27

0

你錯過了一個分號:P

mysql_close($con)

應該

mysql_close($con); 
+0

究竟在哪裏? – NizeGuy 2012-01-06 14:55:43

+0

代碼的最後一行 – rjv 2012-01-06 15:01:26

+0

好的,非常感謝。 – NizeGuy 2012-01-06 15:05:55