1

joomlaのクエリを使用しています。

$query = "INSERT INTO '#__demo'( 'id', 'fname', 'mname', 'lname' ) VALUES ( '$val', '$post['fname']', '$post['Mname']', '$post['Lname']' );";

エラーが発生しています

syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING 
4

3 に答える 3

4

データを挿入するために、joomla2.5でもこの形式を使用できます。

$data =new stdClass();
$data->id = null;
$data->field1 = 'val1';
$data->field2 = 'val2';
$data->field3 = 'val3';

$db = JFactory::getDBO();
$db->insertObject( '#__mytable', $data, id );

stdClassは、他のすべてのクラスが拡張されるphp基本クラスです。

'id'は、接続されたテーブルの主キーの名前です。

于 2013-05-20T06:54:26.467 に答える
2

クエリには2つの間違いがあります。

  1. $_POST値の引用符をエスケープしていません。

    '$post['fname']'
    //     ^ here and other places
    
  2. 'テーブルとフィールド名を表すために一重引用符を使用しています。

     .. INTO '#__demo'( ..       
    //       ^ here and other places
    

今、そのような問題をすべて取り除いた後。クエリは次のようになります。

$query = "INSERT INTO `#__demo` ( `id`, `fname`, `mname`, `lname` ) VALUES ( '$val', '$post[fname]', '$post[Mname]', '$post[Lname]' );";
于 2012-10-11T10:25:18.950 に答える
0

挿入クエリを作成するためのよりフォーマットされた方法を使用できます

$db = JFactory::getDBO(); // get the connection
$query = $db->getQuery(true);

$columns = array('field1','field2'); // set the column names to a variable 
$values = array(1,$db->quote('Your message'));

$query->insert($db->quoteName('#__tablename'))
      ->columns($db->quoteName($columns))
      ->values(implode(',',$values));

$db->setQuery($query);  
$db->execute();

$tourid = $db->insertid(); // get the last inserted id

ここからリファレンスを入手できます

https://docs.joomla.org/Inserting,_Updating_and_Removing_data_using_JDatabase

于 2015-04-17T04:03:03.870 に答える