2016-12-04 48 views
0

我一直在尝试PHP和我有一些问题,我只是无法解决的参数。如果我尝试通过键入保存BD上的参数,否则如果我尝试从代码中直接发送它不起作用。 这是我的代码。PHP PDO发送参数

<?php 
class Cliente { 

    public $db; 

    public function __construct() { 
     $db = new Database(); 
     $this->db = $db->instance(); 
     $this-> sendDado(); 
    } 


    public function sendDado(){ 
     if ($_POST) { 
      try { 
       $query = $this->db->prepare("INSERT INTO PESSOA(nome, email, func) values(:nome,:email,:func)"); 
       $query->bindValue(":nome", $_POST['nome'], PDO::PARAM_STR); 
       $query->bindValue(":email", $_POST['email'], PDO::PARAM_STR); 
       $query->bindValue(":func", $_POST["1"], PDO::PARAM_INT); 
       $query->execute(); 
       echo "Enviado com sucesso"; 
      } catch(PDOException $e) { 

       echo "Não foi possivel enviar"; 
      } 
     } 
    } 
?> 
+1

“保存BD上的参数”是什么意思?你是否从这段代码中得到错误? – WillardSolutions

+0

@EatPeanutButter也许他指的是DB。 – Perumal

+0

$ _POST ['1']是什么? –

回答

0

不知道错误信息(通常在调试时很重要),我只能猜测。 $_POST["1"]看起来很可疑。你真的有一个“1”(第一)作为其名称(甚至允许)的POST变量?或者你是否试图在数据库中保存整数1作为“func”的值?如果是,则将该行更改为

$query->bindValue(":func", 1, PDO::PARAM_INT); 
+0

没有错误的消息,它的行为,因为它正在工作,但当我去数据库没有信息。我想保存值1,不允许使用只有数字命名的变量。 $ query-> bindValue(“:func”,1,PDO :: PARAM_INT); 而这一个也没有工作,我尝试过。 –