Fala… tenho uma pagina simples para CRUD com php que só não está inserindo no banco. E no MySQL não dá nenhum erro (conecta e faz todas as outras funções MENOS inserir). Segue os códigos:
FUNÇÕES DO SQL
<?php
//importar conexao
require_once 'conexao.php';
/*
* Script responsável pelo modelo de dados de acervo
*/
// Buscar livro por id
function filtrar_livro_por_id($id) {
global $conexao;
// Impedir SQL Injection
$id = mysqli_real_escape_string($conexao, $id);
// Comando SQL para selecionar registro por ID
$sql = "SELECT * FROM acervo WHERE id = '$id'";
// Executa comando SQL
$resultado = mysqli_query($conexao, $sql);
// Retorna registro encontrado
return mysqli_fetch_assoc($resultado);
}
// Buscar todos os acervo
function filtrar_todos_acervo() {
global $conexao;
// Comando SQL para selecionar todos os registros
$sql = "SELECT * FROM acervo";
// Executa comando SQL
$acervo = mysqli_query($conexao, $sql);
// Retorna todos os registros encontrados
return $acervo;
}
// Inserir livro
function inserir_livro($livro) {
//global $conexao; ESTAVA APENAS a variavel GLOBAL CONEXAO
$host = 'localhost';
$usuario = 'root';
$senha = 'root';
$banco = 'biblio';
$conexao = mysqli_connect($host, $usuario, $senha, $banco);
// Impedir SQL Injection mysqli_real_escape_string
$idEditora = mysqli_real_escape_string($conexao, $livro['idEditora']);
$titulo = mysqli_real_escape_string($conexao, $livro['titulo']);
$autor = mysqli_real_escape_string($conexao, $livro['autor']);
$ano = mysqli_real_escape_string($conexao, $livro['ano']);
$preco = mysqli_real_escape_string($conexao, $livro['preco']);
$quantidade = mysqli_real_escape_string($conexao, $livro['quantidade']);
$tipo = mysqli_real_escape_string($conexao, $livro['tipo']);
// Comando SQL para inserir todos os registros
//(idEditora, titulo, autor, ano, preco, quantidade, tipo)
$sql = "INSERT INTO acervo (idEditora, titulo, autor, ano, preco, quantidade, tipo) VALUES ('$nome', '$idEditora', '$titulo', '$autor', '$ano', '$preco', '$quantidade', '$tipo')";
if (!mysqli_query($conexao, $sql)) {
die('Erro: ' . mysqli_error($conexao));
}
echo "1 registro gravado no banco";
// Executa comando SQL
$resultado = mysqli_query($conexao, $sql) or die ("Erro ao tentar inserir no banco");
// Retorna resultado da transação
return $resultado;
}
// Alterar dados do livro
function alterar_livro($livro) {
global $conexao;
// Impedir SQL Injection
$id = mysqli_real_escape_string($conexao, $livro['id']);
$idEditora = mysqli_real_escape_string($conexao, $livro['idEditora']);
$titulo = mysqli_real_escape_string($conexao, $livro['titulo']);
$autor = mysqli_real_escape_string($conexao, $livro['autor']);
$ano = mysqli_real_escape_string($conexao, $livro['ano']);
$preco = mysqli_real_escape_string($conexao, $livro['preco']);
$quantidade = mysqli_real_escape_string($conexao, $livro['quantidade']);
$tipo = mysqli_real_escape_string($conexao, $livro['tipo']);
// Comando SQL para selecionar todos os registros
$sql = "UPDATE acervo SET idEditora = '$idEditora', titulo = '$titulo', autor = '$autor', ano = '$ano', preco = '$preco', quantidade = '$quantidade', tipo = '$tipo' WHERE id = '$id'";
// Executa comando SQL
$resultado = mysqli_query($conexao, $sql);
// Retorna resultado da transação
return $resultado;
}
// Excluir livro
function excluir_livro($id) {
global $conexao;
// Impedir SQL Injection
$id = mysqli_real_escape_string($conexao, $id);
// Comando SQL para selecionar todos os registros
$sql = "DELETE FROM acervo WHERE id = '$id'";
// Executa comando SQL
$resultado = mysqli_query($conexao, $sql);
// Retorna resultado da transação
return $resultado;
}
?>
INICIAL PARA LISTAR E ALTERAR, DELETAR OU CRIAR NOVO
<?php
// Importar o arquivo de conexão
require_once 'conexao.php';
// Importar o arquivo responsável pelo modelo de dados de livros
require_once 'biblio-db.php';
// Buscar todos os livros
$livros = filtrar_todos_acervo();
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Lista dos livros - Biblioteca Virtual</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
</head>
<body>
<div class="container">
<div class="page-header">
<h1>Cadastro de livros</h1>
</div>
<div class="panel panel-default">
<div class="panel-body">
<a href="biblio-form.php" class="btn btn-primary">Novo</a>
</div>
</div>
<table class="table table-striped">
<thead>
<tr>
<th>ID</th>
<th>Id Editora</th>
<th>Titulo</th>
<th>Autor</th>
<th>Ano</th>
<th>Preco</th>
<th>Quantidade</th>
<th>Tipo</th>
<th></th>
</tr>
</thead>
<tbody>
<?php foreach ($livros as $livro) : ?>
<tr>
<td><?php echo $livro['id']; ?></td>
<td><?php echo $livro['idEditora']; ?></td>
<td><?php echo $livro['titulo']; ?></td>
<td><?php echo $livro['autor']; ?></td>
<td><?php echo $livro['ano']; ?></td>
<td>R$ <?php echo $livro['preco']; ?></td>
<td><?php echo $livro['quantidade']; ?></td>
<td><?php echo $livro['tipo']; ?></td>
<td class="text-right">
<a href="biblio-form.php?id=<?php echo $livro['id']; ?>" class="btn btn-primary">Editar</a>
<a href="biblio-processa.php?acao=excluir&id=<?php echo $livro['id']; ?>" class="btn btn-danger" onclick="return confirm('Confirma
a exclusão?');">Excluir</a>
</td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
</div>
</body>
</html>
FORMULARIO DE CADASTRO
<?php
// Importar o arquivo de conexão
require_once 'conexao.php';
// Importar o arquivo responsável pelo modelo de dados de clientes
require_once 'biblio-db.php';
// Livro em vetor
$livro = array(
'idEditora' => '',
'titulo' => '',
'autor' => '',
'ano' => '',
'preco' => '',
'quantidade' => '',
'tipo' => ''
);
// Verifica que o ID do cliente foi passado via URL
if (isset($_GET['id']) && ! empty($_GET['id'])) {
// Buscar cliente pelo ID
$livro = filtrar_livro_por_id($_GET['id']);
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>- Biblioteca Virtual -</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
</head>
<body>
<div class="container">
<div class="page-header">
<h1>Cadastro de Novos Livros</h1>
</div>
<?php if (isset($_GET['erro']) && $_GET['erro'] == '1') : ?>
<div class="alert alert-danger">
Verifique os campos obrigatórios
</div>
<?php endif; ?>
<form action="biblio-processa.php" method="post">
<input type="hidden" name="id" value="<?php echo $livro['id']; ?>">
<input type="hidden" name="acao" value="salvar">
<div class="form-group">
<label for="IdEditora">Id Editora *</label>
<input type="text" name="idEditora" id="idEditora" class="form-control"
value="<?php echo $livro['idEditora']; ?>" maxlength="100">
</div>
<div class="form-group">
<label for="titulo">Titulo *</label>
<input type="text" name="titulo" id="titulo" class="form-control"
value="<?php echo $livro['titulo']; ?>" maxlength="100">
</div>
<div class="form-group">
<label for="autor">Autor *</label>
<input type="text" name="autor" id="autor" class="form-control"
value="<?php echo $livro['autor']; ?>" maxlength="100">
</div>
<div class="form-group">
<label for="ano">Ano Lancamento *</label>
<input type="text" name="ano" id="ano"class="form-control"
value="<?php echo $livro['ano']; ?>" maxlength="100">
</div>
<div class="form-group">
<label for="preco">Preco *</label>
<input type="text" name="preco" id="preco" class="form-control"
value="<?php echo $livro['preco']; ?>" maxlength="100">
</div>
<div class="form-group">
<label for="quantidade">Quantidade *</label>
<input type="text" name="quantidade" id="quantidade" class="form-control"
value="<?php echo $livro['quantidade']; ?>" maxlength="100">
</div>
<div class="form-group">
<label for="tipo">Tipo *</label>
<input type="text" name="tipo" id="tipo" class="form-control"
value="<?php echo $livro['tipo']; ?>" maxlength="100">
</div>
<button type="submit" class="btn btn-primary">Salvar</button>
       
<button type="reset" class="btn btn-primary">Limpar</button>
<br /><br />
<a href="livro-lista.php"><-- Voltar</a>
</form>
<br>
</div>
</body>
</html>
CONEXAO COM BANCO
<?php
// Variáveis de conexão
$host = 'localhost';
$usuario = 'root';
$senha = 'root';
$banco = 'biblio';
// Tornando global a variável $conexao permitindo
// ser usada dentro de funções e classes
global $conexao;
// Conectar com o banco de dados
$conexao = mysqli_connect($host, $usuario, $senha, $banco);
// Verificar se a conexão foi bem sucedida
if (mysqli_connect_errno()) {
die("Falha ao tentar conectar com o " . "banco de dados MySQL: " . mysqli_connect_error());
}
// Teste para Conexão bem sucedida
//echo "<br />";
//echo "<br />";
//echo "<p><strong>Conexao realizada com sucesso!</strong></p>";
?>
EXECUTA OS COMANDOS SQL
<?php
// Importar o arquivo de conexão
require_once 'conexao.php';
// Importar o arquivo responsável pelo modelo de dados de livros
require_once 'biblio-db.php';
// Certificar que uma ação foi requisitada
if (!isset($_REQUEST['acao']))
return header('Location: livro-lista.php');
// Executar ação
switch ($_REQUEST['acao']) {
case 'salvar':
// Pegar ID do registro
$id = $_POST['id'];
// Validar campos obrigatórios
if (empty($_POST['idEditora']) || empty($_POST['titulo']) || empty($_POST['autor']) || empty($_POST['ano']) || empty($_POST['preco']) || empty($_POST['quantidade']) || empty($_POST['tipo'])) {
return header('Location: biblio-form.php?erro=1' . (!empty($id) ? "&id=$id" : ' '));
}
// Verificar se o registro é novo
if (empty($id))
inserir_livro($_POST);
else alterar_livro($_POST);
break;
case 'excluir':
excluir_livro($_GET['id']);
break;
default:
break;
}
// Redirecionar para a página livro-lista.php
header('Location: livro-lista.php');
?>
o que pode ser? ele nem passa pelo erro, simplesmente retorna a pagina e no banco não esta gravado e também não mostra nada no log do mysql. Desde já obrigado.
Ricardo