插入中没有值


Inserting with no values in it

我在这里发布代码,请帮忙。

每次我运行它时都会创建一个新行,但没有数据保存在 它,除了 id.Is 里面有任何获得者和二传手。

尝试使用 post 方法在数据库中插入值。它将新行保存到表中,但不会保存该值。我不知道发生了什么。

<?php
// No direct access
defined('_JEXEC') or die;
jimport('joomla.application.component.controller');
class NewbookController extends JControllerLegacy
{
public static function getHello($params)
    {
 $db =JFactory::getDBO();
  echo $name = $_POST['name'];
  echo $img =$_POST['image'];
 $query = "INSERT INTO `book_newbook` (`id`,`name`,`image`)
    VALUES ('','$name', '$img');";
$db->setQuery( $query );
$db->query(); 
//$result = $db->loadResult();
//return $result;
}
}
?>
 <form action="index.php" name="adminForm" method="post" enctype="multipart/form-data">
  <p>Name : 
    <input type="text" name="name"/>
        </p>
  <p>Image : 
    <input type="file" name="image"/>
  </p>
  <p> 
    <input type="submit"  value="OK" name="ok"/>
      </p>
</form>

让你开始做几件事:

$input = new JInput;
$name = $input->get('name', '', 'post');
$img = $input->get('image', '', 'post');
$db = JFactory::getDbo();     
$query = $db->getQuery(true);
$columns = array('id', 'name', 'image');    
$values = array($db->quote($name), $db->quote($image));
$query->insert($db->quoteName('#__book_newbook'))
      ->columns($db->quoteName($columns))
      ->values(implode(',', $values));
$db->setQuery($query);
$db->query();

注意:请参阅数据库表前的前缀>> #__book_newbook

请记住,这是帮助您入门的东西。您仍然需要阅读为Joomla开发MVC组件,以便一切都从头开始。

希望这有帮助

假设您的数据库表键是'id',您将其插入为'',即空白。 这很少起作用。替换为

 "INSERT INTO `book_newbook` (`name`,`image`)
    VALUES ('$name', '$img');";

和 ID 应自动更新。

关于使用Joomla更新数据库,请阅读他们的数据库查询标准,因为他们有自己的做事方式 - http://docs.joomla.org/Accessing_the_database_using_JDatabase