Использовать переменную $ внутри строки SQL? - PullRequest
0 голосов
/ 06 января 2012

Я бы хотел иметь возможность выбрать категорию из выпадающего списка, и в зависимости от категории он добавит ее в любую таблицу 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)

?>

Я хочу, чтобы переменная $ article имела значениебыть там, где вы назвали имя таблицы.

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

Так что, что бы я ни выбрал в раскрывающемся списке, оно будет стоить $ article.

Ответы [ 3 ]

6 голосов
/ 06 января 2012

Попробуйте:

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

Не забудьте санировать свой вклад! (mysql_real_escape_string, для начинающих)

2 голосов
/ 06 января 2012

Вы не можете использовать этот тип переменных, измените последний код на $sql="INSERT INTO $article (headline, content) VALUES ('" . $_POST['headline'] " . ', '" . $_POST['content'] . "')";

0 голосов
/ 06 января 2012

Я знаю, что этот ответ не будет слишком полезным для вас сейчас, но, поскольку в этом коде и в этом подходе слишком много ошибок, вот несколько советов:

  • Использование PDOвместо функций PHP MySQL.Поначалу это будет казаться пугающим, особенно если у вас нет опыта работы с объектно-ориентированным программированием, но оно определенно стоит усилий.
  • Санируйте это значение $article! if($article == 'foo' || $article == 'bar') {...}
  • Наилучшие способы использования переменных в строках: "This is a ".$adjective." string" и "This is a {$adjective} string"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...