2016-06-08 5 views
0

На моем веб-сайте есть раздел «Моя идеальная доска».Как подключать и вставлять данные в базу данных Wordpress?

Это форма, в которой пользователь вводит свои данные, и будет сообщение с типом идеальной платы для человека.

Первый шаг, сделать форму: Готово;

Теперь мне нужно подключить и зарегистрировать данные в базе данных. Я создал таблицу в базе данных Wordpress под названием «minhaprancha». Но я не могу записать данные на него: замешательстве:

Код подключения и регистрации выглядит следующим образом:

global $wpdb; 

    $nome = ""; 
    $email = ""; 
    $estilo = ""; 
    $experiencia = ""; 
    $altura = ""; 
    $peso = ""; 

    //VÁRIÁVEIS 
    if(!empty($_POST)){  
    $nome = $_POST['nome']; 
    $email = $_POST['email']; 
    $estilo = $_POST['estilo']; 
    $experiencia = $_POST['experiencia']; 
    $altura = $_POST['altura']; 
    $peso = $_POST['peso']; 


    cadastrar($nome,$email,$estilo,$experiencia,$altura,$peso); 
    calcularIMC($estilo,$experiencia,$altura,$peso); 

    } 


    function cadastrar($nome,$email,$estilo,$experiencia,$altura,$peso){   //INSERE OS DADOS NO BANCO 
     try{ 

     $wpdb->insert("INSERT INTO aa_minhaprancha("."nome, email, estilo, experiencia, altura, peso) VALUES (". ":nome', ':email', ':estilo', ':experiencia', ':altura', ':peso')"); 

      if($wpdb->rowCount() > 0) 
       return true; 
      else 
       return false; 

     }catch(PDOException $e){ 
     echo "Erro ao incluir na tabela categoria ".$e->getMessage(); 
     } 
    } 

Во-первых, как я могу подключить и зарегистрировать данные в базе данных?

----------------------- ОБНОВЛЕНИЕ ---------------------

Мне это удалось! Я установил соединение по прямой линии:

<?php 
/*CONNECTION WITH DATABASE*/ 
define('DB_NAME', 'MYDB'); 
define('DB_USER', 'MYUSER'); 
define('DB_PASSWORD', 'MYPASS'); 
define('DB_HOST', 'localhost'); 
define('DB_CHARSET', 'utf8mb4'); 
define('DB_COLLATE', ''); 


function conectar(){ 

    $dsn = "mysql:host=".DB_HOST.";dbname=".DB_NAME.""; 

    try{ 
     $conectar = new PDO($dsn, DB_USER, DB_PASSWORD); 
     $conectar->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
    }catch(PDOException $e) 
    { 
     echo "Erro ao conectar ao banco". $e->getMessage(); 
    } 
    return $conectar; 
} 

код вставки в базе данных тот же. Однако я изменяю $wpdb для любой переменной.

+0

Что вы получаете сейчас? любая ошибка или любое сообщение? –

ответ

0

В WordPress референции writed:

<?php $wpdb->insert($table, $data, $format); ?> 

где $ формат $ данных и массив.

0

В первую очередь вы должны прочитать документацию о том, как правильно использовать $wpdb->insert()

$nome = ""; 
    $email = ""; 
    $estilo = ""; 
    $experiencia = ""; 
    $altura = ""; 
    $peso = ""; 

    //VÁRIÁVEIS 
    if(!empty($_POST)){  
    $nome = $_POST['nome']; 
    $email = $_POST['email']; 
    $estilo = $_POST['estilo']; 
    $experiencia = $_POST['experiencia']; 
    $altura = $_POST['altura']; 
    $peso = $_POST['peso']; 


    cadastrar($nome,$email,$estilo,$experiencia,$altura,$peso); 
    calcularIMC($estilo,$experiencia,$altura,$peso); 

    }  

function cadastrar($nome,$email,$estilo,$experiencia,$altura,$peso){   //INSERE OS DADOS NO BANCO 

     // the WPDB class is already setup for us let's make it accessible 
     global $wpdb; 

     // the name of our table 
     $table = 'aa_minhaprancha'; 

     // data is an array with the format column_name => data 
     $data = array(
      'nome' => $nome, 
      'email' => $email, 
      'estilo' => $estilo, 
      'experiencia' => $experiencia, 
      'altura' => $altura, 
      'peso' => $peso, 
     ); 

     // run the insert 
     $inserted = $wpdb->insert($table, $data); 

     // if it didn't update get the error 
     if (! $inserted) { 
      $wpbb->print_error(); 
     } 

    } 

В зависимости от настроек вашей таблицы, вам может понадобиться включить дополнительный параметр $format при вставке. Это массив форматов, которые должны отображаться для каждого из значений в $data

+0

, пожалуйста, посмотрите мое сообщение снова. Код не работает. Я сделал некоторые обновления, но безуспешно: / – Zkk

Смежные вопросы