0

私はJoomlaモジュールに取り組んでいます。フォームから入力を取得してデータベースに挿入しようとしています。ここに私の「helper.php」コードがあります:

<?php

/** post form to db module **/

// No direct access
defined( '_JEXEC' ) or die( 'Restricted access' );



//--build the form------------>
?>
<form name="names" id="names" action="<?php echo JURI::current(); ?>" method="post">
  <p><input type="text" name="fname" id="fname" value="" /></p>
  <p><input type="text" name="lname" id="lname" value="" /></p>
  <p><input id="submit" name="submit" type="submit" value="Submit Names" /></p>
</form>
<!-- //--END BUILD THE FORM--------| -->
<?
if( (isset($_POST['lname'])) || (isset($_POST['fname'])) ) {
   //first name or last name set, continue-->
   $lname = $_POST['lname'];
   $fname = $_POST['fname'];
/*   $data =new stdClass();
   $data->id = NULL;
   $data->firstname = $fname;
   $data->lastname = $lname;*/

   $db =& JFactory::getDBO();
   $query = "INSERT INTO `#__names` (`fname`, `lname`)
      VALUES ($fname, $lname);";
   $db->setQuery( $query );
   $db->query(); 

}  else {
  echo '<h4>One Field Is Required!</h4>';
}

?>

フォームは表示されますが、データを送信してもデータベース テーブルが更新されません。Apache エラー ログを確認しましたが、それに関する情報は含まれていません。私は何が欠けていますか?

4

3 に答える 3

1

クエリから削除;し、文字列に引用符を追加して$fname$lname

$query = "INSERT INTO `#__names` (`fname`, `lname`)
          VALUES ('".$fname."', '".$lname."')";

オプションで、NULLフィールドが空の場合は挿入する必要があります

$lname = (trim($lname) != '') ? $lname : 'NULL';
$fname = (trim(fname) != '') ? $fname : 'NULL';
于 2013-08-29T11:48:48.060 に答える
0

これを試して:

$query = "INSERT INTO `#__names` (`fname`, `lname`)
  VALUES ('$fname', '$lname');";
于 2013-08-29T11:53:19.620 に答える