Quantcast
Channel: Tópicos
Viewing all articles
Browse latest Browse all 14700

Erro com PDO

$
0
0
fala galera, estou com um problema na hora de executar o sql usando o pdo...

segue codigo Conexao.class.php
Código (PHP):
<?php
/**
* Classe para conexão com o Banco de Dados Usando PDO
*
* @author Isaias Darci Dieterich
* @version 0.1
* @since 05/08/2013
*
*/
class Conexao extends PDO {
private $dataBase = 'mysql';
private $host = 'localhost';
private $dbName = 'teste';
private $user = 'root';
private $pass = '';
private $conexao = NULL;

function __construct() {
try{
$this->conexao = parent::__construct($this->dataBase.':host='.$this->host.';dbname='.$this->dbName, $this->user, $this->pass);
$this->conexao = parent::setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
//echo 'Sucesso ao se conectar na Base de Dados';
}catch(PDOException $erro){
//echo 'Erro ao se conectar na Base de Dados';
}
}//construct

function __destruct(){
$this->conexao = NULL;
}//destruct

function inserir($objeto){
// SQL = "INSERT INTO TABELA (campos) VALUES (:campos);"
$sql = "INSERT INTO usuarios (";
for($i = 0; $i < count($objeto); $i++){
$sql .= key($objeto);
next($objeto);
if($i < (count($objeto) - 1)){
$sql .= ", ";
}else{
$sql .= ") ";
}
}//for
reset($objeto);
$sql .= "VALUES (";
for($i = 0; $i < count($objeto); $i++){
$sql .= is_numeric($objeto[key($objeto)]) ? ":".$objeto[key($objeto)] : "':".$objeto[key($objeto)]."'";
next($objeto);
if($i < (count($objeto) -1)){
$sql .= ", ";
}else{
$sql .= ") ";
}
}//for
reset($objeto);
$binVal = "";
for($i = 0; $i < count($objeto); $i++){
$binVal .= "':".$objeto[key($objeto)]."'";
if($i < (count($objeto) -1)){
$binVal .= ", ".key($objeto).", ";
}else{
$binVal .= ", ".key($objeto);
}
next($objeto);
}//for
try{
$query = $this->prepare($sql);
$query->bindValue($binVal, PDO::PARAM_STR);
$query->execute();
}catch(PDOException $erroInserir){
echo 'Erro ao Inserir Dados!'.$erroInserir->getMessage();
}
//echo $sql;
//echo $binVal;
}//inserir
}
?>

e o codigo da pagina de teste.php

Código (PHP):
<?php
include_once('conexao.class.php');
$con = new Conexao();

$testArr = array(
"nome" => "Isaias",
"idade" => 20);
$con->inserir($testArr);

?>

e o erro que ele esta acusando é este

SQLSTATE[HY093]: Invalid parameter number: parameter was not defined

alguem sabe m dizer o porque deste erro?

Viewing all articles
Browse latest Browse all 14700