2016-06-08 163 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(); 
     } 
    } 

起初,我怎么可以连接并在数据库中注册的数据?

----------------------- UPDATE ---------------------

我管理它!我以直接的方式建立连接:

<?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参考所著:

<?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