• Здравствуйте все… не могу решить задачу уже несколько дней… помогите пожалуйста добрые люди.
    Пишу свой первый плагин для wordpress, и приходится пользоваться БД. Написал функцию которая создает Бд

    function table_activate(){
     global $wpdb;
     $table = $wpdb->prefix.table;
     $sql = "CREATE TABLE IF NOT EXISTS '" . $table . "' (
          ‘id’INT(11) NOT NULL DEFAULT '0',
    	‘xdate’ DATETIME NOT NULL,
    	‘transaction_id’ INT(11) NOT NULL,
    	‘status’ TINYTEXT NOT NULL,
    	‘err_code’ INT(11) NULL DEFAULT NULL,
    	‘summa’ FLOAT NOT NULL,
    	‘valuta’ TINYTEXT NOT NULL,
    	‘sender_phone’ TINYTEXT NOT NULL,
    	‘comments’ TEXT NOT NULL,
    	 UNIQUE INDEX ‘id’ (‘id’)
    	) ENGINE=MyISAM DEFAULT CHARSET=utf8";
    	$wpdb->query($sql);}

    Отрабатывает она нормально, таблица создается все ГУД
    потом пишу функцию по заполнению строк в эту таблицу…

    function insertdb($order_id1, $xdate, $transaction_id1,$status1,$summa1,$datas1,$sender_phone1,$code1,$valuta1)	 {
    global $wpdb;
    $table = $wpdb->prefix.table;
    
    //$wpdb = new wpdb('login','password','base_name','localhost');
    
    $inputData1 = array( 'id' => $order_id1,
    		'xdate' => $xdate,
    		'transaction_id' => $transaction_id1,
    		'status' => $status1,
    		'err_code' => $code1,
    		'summa' => $summa1,
    		'valuta' => $valuta1,
    		'sender_phone' => $sender_phone1,
    		'comments' => $datas1
    	);
    
    $inputData2 =	array(
    		'%d',
    		'%s',
    		'%d',
    		'%s',
    		'%d',
    		'%s',
    		'%s',
    		'%s',
    		'%s'
    	) ;
    $wpdb->insert($table, $inputData1, $inputData2);
    }

    И вот тут вопрос если я не использую строку $wpdb = new wpdb('login','password','base_name','localhost');
    то функция не добавляет стоки в таблицу, а с этой строкой все работает, но я бы не хотел ее использовать думаю по понятным причинам… да и если плагин будут устанавливать другие пользователи не хотелось бы чтобы они еще с недоверием относились к плагину т.к. он просит ввести логины и пароли… Вот такая у меня задача.. Помогите плз.

Просмотр 2 ответов — с 1 по 2 (всего 2)
  • Может я ошибаюсь, но попробуй вынести global $wpdb; за пределы функций.
    Блин, был бы код под рукой, я бы что-то те помог. А так не могу сообразить…
    Ещё ты можешь использовать для подключения данные из констант:

    DB_NAME
    DB_USER
    DB_PASSWORD
    DB_HOST

    Где что думаю сам догадаешься.

    Dimas_Odessa, спасибо большое за ответ, вынесение global $wpdb; за пределы функции ничего не дало… а вот за
    DB_NAME
    DB_USER
    DB_PASSWORD
    DB_HOST

    спасибо, этого не знал… тепрь хоть не надо вводить ничего.. но странно смотрел уроки разные по БД везде просто используется голая функция insert без каких либо $wpdb = new … если кто знает, почему не работает у меня скажите плз… но вариант Dimas_Odessa лучше чем ничего… спасибо большое

Просмотр 2 ответов — с 1 по 2 (всего 2)
  • Тема «Работа с базой данных» закрыта для новых ответов.