osclass SQL Вставка данных дважды

у меня есть эта таблица osclass, когда я вставляю данные, а затем просматриваю таблицу, данные были введены дважды, поэтому я получаю два идентификатора одной и той же таблицы.

CREATE TABLE  /*TABLE_PREFIX*/t_table_log(
    pk_i_id INT NOT NULL AUTO_INCREMENT ,
    fk_i_user_id INT NULL ,
    fk_i_item_id INT NULL ,
    s_email VARCHAR( 200 ) NULL ,
    s_status VARCHAR( 20 ) NOT NULL ,

    PRIMARY KEY(pk_i_id)
) ENGINE=InnoDB DEFAULT CHARACTER SET 'UTF8' COLLATE 'UTF8_GENERAL_CI';

это мой php-код

$conn = getConnection();
$conn->osc_dbExec("INSERT INTO %st_table_log (fk_i_item_id, fk_i_user_id, s_email, s_status ) VALUES ('".$_SESSION['itemid']."','".$_SESSION['userid']."','".$response['senderEmail']."','".$response['status']."')", DB_TABLE_PREFIX) ;
$item_url =  osc_item_url() ;
    $name = osc_page_title() ;
    $subject = (__("Hello",'osclass'));
    $email = osc_logged_admin_email();
        $messagesend =" my message";
          $params = array(
            'subject' => $subject
            ,'to' => $email
            ,'to_name' =>$name
            ,'body' => $messagesend
            ,'alt_body' => strip_tags($messagesend)
       ) ;
        osc_sendMail($params) ;

person Ahmed    schedule 23.04.2016    source источник


Ответы (1)


Где находится ваш код?

Возможно, вы захотите проверить эти вещи:

  • autocron: это функция Osclass, которая запускает Cron без необходимости настраивать crontab. Перейдите к Settings > General и проверьте, включен ли автокрон. Он делает для него новый HTTP-запрос, поэтому ваш код может выполняться дважды.
  • ajax: у вас может быть запрос ajax в одном из ваших включенных плагинов или тем, который делает запрос при каждой загрузке и дважды запускает ваш код.

Из того, что я вижу, вы можете использовать хук 'init', чтобы убедиться, что он выполняется один раз. Что-то вроде этого:

osc_add_hook('init', function () {
  $session = Session::newInstance();
  $userId = $session->_get('userid');
  $itemId = $session->_get('itemid');

  // Do something.
});

Кроме того, попробуйте взглянуть на DAO в Osclass и разработка плагинов, здесь руководство, которое проведет вас через разработку плагинов Osclass и использование DAO.

person Hussard    schedule 24.04.2016