在SQL字符串中使用$变量?

时间:2012-01-06 14:31:45

标签: php sql variables

我希望能够从下拉列表中选择一个类别,并根据类别将其添加到与其相同的任何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)

?>

我希望变量$ articles位于表格名称的位置。

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

所以无论我在下拉列表中选择什么,它都会把它放在$ articles。

3 个答案:

答案 0 :(得分:5)

尝试:

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

不要忘记消毒你的输入! (mysql_real_escape_string,适合初学者)

答案 1 :(得分:1)

您无法使用该类型的变量,请将最后一个代码更改为 $sql="INSERT INTO $article (headline, content) VALUES ('" . $_POST['headline'] " . ', '" . $_POST['content'] . "')";

答案 2 :(得分:0)

我知道这个答案现在对你来说不会太有帮助,但是那个代码和那个方法有太多错误,这里有一些提示:

  • 使用PDO代替PHP的MySQL功能。一开始看起来令人生畏,特别是如果你没有任何面向对象编程的经验,但它绝对值得付出努力。
  • 清理$article值! if($article == 'foo' || $article == 'bar') {...}
  • 在字符串中使用变量的最佳方法是:"This is a ".$adjective." string""This is a {$adjective} string"