2012-01-06 78 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