0

ここにコードを投稿しています。助けてください。

これを実行するたびに新しい行が作成されますが、id を除いてデータは保存されません。ゲッターとセッターはありますか。

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>
4

2 に答える 2

2

いくつかの作業を開始するには:

$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 コンポーネントの開発を読む必要があります。

お役に立てれば

于 2013-10-29T10:48:01.250 に答える
-1

データベーステーブルのキーが であると仮定すると、これを、つまり空白'id'として挿入します。''これはほとんど機能しません。と置換する

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

ID は自動的に更新されます。

Joomla でデータベースを更新することに関しては、独自の方法があるため、データベース クエリの標準を読んでください - http://docs.joomla.org/Accessing_the_database_using_JDatabase

于 2013-10-29T10:01:26.893 に答える