Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Preciso de uma ajuda para conectar com o banco. Estava tudo funcionando normalmente com MYSQL agora parou tudo e estou tentando trocar para MYSQLI.
Não acho o erro, já tentei de tudo.
connection.php
<?
function conecta()
{
$host = "localhost";
$user = "admin";
$pass = "123456789";
$db = "principal";
//Conexão
$conexao = mysqli_connect($host, $user, $pass) or die("Erro na conexão:".mysqli_error());
//Selecionar BD
mysqli_select_db($conexao,$db) or die("Erro ao selecionar BD");
}
function desconecta() mysqli_close();
}
?>
validate.php
<?
if (empty($_POST) and (empty($_POST['cpUsuario']) OR empty($_POST['cpSenha'])))
{
header("Location: ../login.php");
exit;
} include("connection.php");
conecta();
$varUsuario = $_POST['cpUsuario'];
$varSenha = sha1($_POST['cpSenha']);
$stt = "SELECT ID,txNome,txNivel FROM tbUsuario WHERE txUsuario='$varUsuario' and txSenha='$varSenha' LIMIT 1";
$sql = mysqli_query($conexao,$stt) or die(mysqli_error($conexao));
$existe = mysqli_num_rows($sql);
if ($existe == 0)
{
echo "Login invalido ou inexistente na base";
exit;
}
else
{
$resultado = mysqli_fetch_assoc($sql);
if (!isset($_SESSION))
{
session_start();
}
$_SESSION['UsuarioID'] = $resultado['ID'];
$_SESSION['UsuarioNOME'] = $resultado['txNome'];
$_SESSION['UsuarioNIVEL'] = $resultado['txNivel'];
header("Location: ../menu.php");
exit;
}
}
?>
O erro agora está dando o seguinte:
PHP Warning: mysqli_query() expects parameter 1 to be mysqli, null given in /home4/public_html/connection/validate.php on line 17
Linha 17 é essa:
$sql = mysqli_query($conexao,$stt) or die(mysqli_error($conexao));
Se eu tiro o $conexao do mysqli_query ele da erro de "mysqli_query() expects at least 2 parameters, 1 given" e se eu coloco o erro é "mysqli_query() expects parameter 1 to be mysqli, null given"
Alguem sabe como posso resolver isso?experimenta conectar db direto:
$conexao = mysqli_connect($host, $user, $pass, $db) or die("Erro na conexão:".mysqli_error());
>
9 horas atrás, merlinus disse:
experimenta conectar db direto:
$conexao = mysqli_connect($host, $user, $pass, $db) or die("Erro na conexão:".mysqli_error());
Tentei e nada adiantou! o erro continuou o mesmo:
PHP Warning: mysqli_query() expects parameter 1 to be mysqli, null given in /home4/public_html/connection/validate.php on line 17
O problema está sendo gerado nessa linha e não na conexao:
$stt = "SELECT ID,txNome,txNivel FROM tbUsuario WHERE txUsuario='$varUsuario' and txSenha='$varSenha' LIMIT 1";
$sql = mysqli_query($conexao,$stt) or die(mysqli_error($conexao)); (ERRO ESTA NESSA LINHA)Eu consegui dar uma evoluida. Agora não sei por qual motivo a variavel $SQL está vazia. Eu fiz um debug até o $STT e tem dados normalmente mas na linha $SQL não ta salvando na variavel.
Fiz um ECHO depois da linha abaixo e tem o select certinho com os dados inclusos.
$stt = "SELECT ID,txNome,txNivel FROM tbUsuario WHERE txUsuario='$varUsuario' and txSenha='$varSenha' LIMIT 1";
Quando faço um ECHO no $SQL abaixo ele está vazio:
$sql = mysqli_query($conexao,$stt) or mysqli_error($conexao);tá.. agora eu vi seu codigo com calma, você tá fazendo por função, mas você não tá conectando.. vamos por parte primeiro na função ela tem retornar o q está conectado
<?
function conecta()
{
$host = "localhost";
$user = "admin";
$pass = "123456789";
$db = "principal";
//Conexão
$conexao = mysqli_connect($host, $user, $pass) or die("Erro na conexão:".mysqli_error());
//Selecionar BD
mysqli_select_db($conexao,$db) or die("Erro ao selecionar BD");
return $conexao;
}
function desconecta() mysqli_close();
}
?>
depois qudo você conecta você tem q conectar algo
<?
if (empty($_POST) and (empty($_POST['cpUsuario']) OR empty($_POST['cpSenha'])))
{
header("Location: ../login.php");
exit;
} include("connection.php");
$conexao=conecta();
$varUsuario = $_POST['cpUsuario'];
$varSenha = sha1($_POST['cpSenha']);
$stt = "SELECT ID,txNome,txNivel FROM tbUsuario WHERE txUsuario='$varUsuario' and txSenha='$varSenha' LIMIT 1";
$sql = mysqli_query($conexao,$stt) or die(mysqli_error($conexao));
$existe = mysqli_num_rows($sql);
if ($existe == 0)
{
echo "Login invalido ou inexistente na base";
exit;
}
else
{
$resultado = mysqli_fetch_assoc($sql);
if (!isset($_SESSION))
{
session_start();
}
$_SESSION['UsuarioID'] = $resultado['ID'];
$_SESSION['UsuarioNOME'] = $resultado['txNome'];
$_SESSION['UsuarioNIVEL'] = $resultado['txNivel'];
header("Location: ../menu.php");
exit;
}
}
?>Conseguir fazer funcionar normalmente, desta forma:
connection.php
<?php
$host = "localhost";$pass = "123456789";
$db = "principal";
$conexao = mysqli_connect($host, $user, $pass, $db );
if($conexao != true){
echo "ERRO NA CONEXÃO";
}
?>
validate.php
<?php
$sql = mysqli_query($conexao, "SELECT * FROM tbUsuario WHERE
txUsuario = '".$varUsuario."' AND
txSenha = '".$varSenha."'
LIMIT 1
") or die(mysqli_error($conexao));
?>foi o q eu falei,você não estava utilizando da maneira certa a função conexão.
aconselho você dar uma olhada como funciona as funções vai te ajudar e muito no futuro.
ok
Bom dia.
Acho que falta a variável para o banco de dados.
Veja como eu faço abaixo.