Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Fábionm

problemas com o mysql

Recommended Posts

Olá galera, sou iniciante em php e estou com dúvidas em relação a conexão com o banco. estou com dois tipos de "warning":

 

Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in C:\wamp\www\phpcurso\cursophp\admin\connection.php on line 53

 

e

 

Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in C:\wamp\www\phpcurso\cursophp\admin\connection.php on line 57

 

segue meu código:

<?php

    function getConnection(){
        $conn = mysqli_connect("localhost","root","");
        if(empty($conn)){
            print "Erro ao tentar conectar!";
            return null;
        }else{
            return $conn;
        }
    }

   function execute($sql){
       
        $conn = getConnection();
       
        mysqli_query($conn,$sql);
       
        if(mysqli_affected_rows($sql) > 0)
            $result = true;
        else
            $result = false;
        mysqli_close($conn);
        return $result;
    }

   function executeQuery($sql){
        $conn = getConnection();
        $rs = mysqli_query($conn,$sql);
        $result = array();
        while($row = mysqli_fetch_array($rs)){
            $result[] = $row;
        }

        mysql_free_result($rs);
     
        mysqli_close($conn);
        return $result;
    }
?>
Acredito que o problema seja com a variável "$sql" em outro código, valido o login e senha e a variável $sql está assim:

  $sql = "SELECT 'login', 'senha' FROM 'login' WHERE trim(upper(login)) = trim(upper('$login')) and
                trim(upper(senha))='$senha'";
Peço a ajuda de vcs e desde já agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

ai ve se te ajuda testa ai mas te aconselho a usar PDO por ser bem mais segura e avançado pois funciona em qualquer linguagem e banco mysql,postgresql - php,java etc..

<?php
$link = mysqli_connect ( "localhost" , "root" , "senha" , "nome do banco" );

/* checa conexao */
if ( mysqli_connect_errno ()) {
printf ( "Conexao Falhou: %s\n" , mysqli_connect_error ());
exit();
}

$sql ="SELECT * FROM usuarios tua ação no banco de dados";

if ($result = mysqli_query ( $link ,$sql )) {
$row = mysqli_fetch_array ( $result );
echo $row ['nome'];
mysqli_free_result ( $result );
}


mysqli_close ( $link );
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

não é assim mysqli_query, o certo é mysql_query() e no final poe o or die (mysql_error()), ficando assim

 

mysql_query ( $link ,$sql ) or die (mysql_error());

 

isso facilida identificar erros na query sql, ajuda bastante

Compartilhar este post


Link para o post
Compartilhar em outros sites

continua dando erro tanto com o mysql_query() quanto o mysqli();

 

o primeiro dá esse erro:

 

Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in

 

e o segundo dá esse:

 

Warning: mysqli_query() expects parameter 1 to be mysqli, null given in

 

achei que fosse problemas com o mysql.dll e mysqli.dll, porém estão ok tanto no php.ini quanto na pasta ext.

Compartilhar este post


Link para o post
Compartilhar em outros sites

remova a variável $link

 

utilize apenas

$sql = mysql_query($sql) or die(mysql_error());

 

poste também o valor da variável de consulta, por favor

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aparece agora o seguibte erro

 

Warning: mysql_query() [function.mysql-query]: Access denied for user 'ODBC'@'localhost' (using password: NO) in

 

Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in

Access denied for user 'ODBC'@'localhost' (using password: NO)

 

 

segue a variavel:

 

$sql = "SELECT login, senha FROM login WHERE trim(upper(login)) = trim(upper('$login')) and

trim(upper(senha))='$senha'";

Compartilhar este post


Link para o post
Compartilhar em outros sites

se é que o usuário (ODBC) existe, ele possui uma senha, e você está tentando realizar a conexão sem definir a senha

 

seu problema está numa linha parecida com essa

 

mysql_connect('localhost','ODBC','');

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara não misture mysql com mysqli são totalmente diferentes ok

de uma olhada :

MYSQL

MYSQLI

 

mas se for com (mysql) tenta assim seria um sistema de login certo

com (mysqli) ja te pasei anteriormente.

<?php
$CON = mysql_connect ( "localhost" , "root" , "senha ou em branco")or die(mysql_error());
$DBA = mysql_select_db('teu banco de dados',$CON) or die(mysql_error());

$sql = mysql_query("SELECT 'login', 'senha' FROM 'login' WHERE trim(upper(login)) = trim(upper('$login')) and
                trim(upper(senha))='$senha'")or die(mysql_error());

$verifica= mysql_num_rows($sql)or die(mysql_error());
if($verifica==1){
$_SESSION['login']=$login;
$_SESSION['senha']=$senha;
echo "<script>window.location.href='area-restrita.php'</script>";
}
else{
echo "<script>alert('ERRO LOGIN OU SENHA NÂO CONFEREM ');</script>";
echo "<script>history.back();'</script>";
echo "<script>exit();</script>";
exit ();
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

se é que o usuário (ODBC) existe, ele possui uma senha, e você está tentando realizar a conexão sem definir a senha

 

seu problema está numa linha parecida com essa

 

mysql_connect('localhost','ODBC','');

 

Acredito que não, porém segue a variavel de conexão:

 

$link = mysqli_connect ( "localhost" , "root" , "","cadastro");

Compartilhar este post


Link para o post
Compartilhar em outros sites

adicione isso aqui:

or die(mysql_error());
depois de TODAS as funções mysql e

 

or die(mysqli_error());
depois de funções mysqli

 

 

 

mysql_connect(bla bla bla);
vira
mysql_connect(bla bla bla) or die(mysql_error());

mysql_query(bla bla bla);
vira
mysql_query(bla bla bla) or die(mysql_error());

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.