Olá Vinicius, segue um exemplo de um formulário de um model de uma classe simples:
public function add($nome, $email, $status) {
if($this->nomeExists($nome) == false) {
$sql = "INSERT INTO areas (nome, email, status)
VALUES (:nome, :email, :status)";
$sql = $this->db->prepare($sql, array(PDO::ATTR_CURSOR => PDO::CURSOR_SCROLL));
$sql->bindValue(":nome", $nome);
$sql->bindValue(":email", $email);
$sql->bindValue(":status", $status);
try {
$this->db->beginTransaction();
$sql->execute();
$this->db->commit();
return true;
} catch(PDOException $e) {
echo $e;
$this->db->rollback();
/* die(); */
return false;
}
} else {
return false;
}
}
A diferença, era que antes não tinha esse array no prepare...
aqui também o config de conexão:
Ja não sei como estava antes...
if(ENVIRONMENT == 'development') {
define("BASE_URL", "http://localhost/PortPar/");
$config['dbname'] = 'sdp;charset=utf8';
$config['host'] = 'localhost';
$config['dbuser'] = 'root';
$config['dbpass'] = 'estudo';
} else {
define("BASE_URL", "http://IPCOMERCIAL/PortPar/");
$config['dbname'] = 'sdp;charset=utf8';
$config['host'] = 'localhost';
$config['dbuser'] = 'root';
$config['dbpass'] = '';
}
global $db;
try {
$db = new PDO("mysql:dbname=".$config['dbname'].";host=".$config['host'], $config['dbuser'], $config['dbpass']);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$db->setAttribute(PDO::ATTR_CASE, PDO::CASE_NATURAL);
} catch(PDOException $e) {
echo "ERRO: ".$e->getMessage();
exit;
}
quando tentei trabalhar com o SQL Server, me indicaram assim:
global $db;
try {
$db = new PDO($pdoConfig2, $pdoUser2, $pdoPass2);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$db->setAttribute(PDO::ATTR_CASE, PDO::CASE_NATURAL);
$db->setAttribute(constant('PDO::SQLSRV_ATTR_DIRECT_QUERY'), false);
$db->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
} catch(PDOException $e) {
echo "ERRO: ".$e->getMessage();
exit;
}
Fiz um teste agora e mudei a conexão para MySQL e a query funcionou... :\