2013-06-17 4 views
0

Я работаю на веб-сайте joomla 2.5 & Я пытаюсь вставить значения в базу данных, введенные в форму на форме submit. Но я не знаю, почему они не вставляются в БД. Пожалуйста, помогите мне, ребята.Как вставить значения в базу данных в joomla 2.5

Я пробовал много разных способов, но я не понимаю, куда иду.

Это мой код:

if(isset($_POST["buttonSubmit"])) 
    { 
     $name = $_POST["name"]; 
     $location = $_POST["location"]; 
     $email = $_POST["email"]; 
     echo $name; 
     $db =& JFactory::getDBO(); 
     echo $query = "INSERT INTO '#__pxa_map' ('name', 'location','email') VALUES ($name, $location,$email)"; 
     $db->setQuery($query); 
     $db->query(); 
    } 

Как вставить значения в базе данных, чтобы в Joomla 2.5

ответ

3

Вы должны добавить обработку ошибок и использовать подготовленные заявления (желательно, не знаю, как это работает в Joomla 2.5), но ваш запрос неверен:

  1. Вы не указываете имена таблиц и полей, вы избегаете их с помощью обратного хода, если необходимо;
  2. Вы цитируете свои значения, если не используете подготовленный оператор;
  3. Вам необходимо запустить свой ввод через $db->quote(), чтобы предотвратить инъекцию sql.

Так оно и должно выглядеть следующим образом:

$db = JFactory::getDbo(); 
$name = $db->quote($_POST["name"]); 
// etc. 

$query = "INSERT INTO `#__pxa_map` (`name`, `location`,`email`) VALUES ('$name', '$location','$email')"; 
+0

Я попробовал это также, но тогда и ее не работает. Можете ли вы рассказать о том, что вы объясните выше. Я получаю это. Пожалуйста, помогите мне. – vickram

+0

@vickram Добавили ли вы обработку ошибок? – jeroen

+0

Нет, но это обязательно? Я много раз извлекал значения из базы данных, но никогда не использовал обработку ошибок. Поскольку вы предлагаете добавить обработку ошибок, я добавляю ее и даю надежду навсегда. Спасибо Jeroen .. – vickram

Смежные вопросы