Ir para conteúdo
Fórum Script Brasil
  • 0

MySqli ?!?!? Problemas


Ezkiel

Pergunta

Boas pessoal,
não consigo entender muito bem o que se está a passar... Quando testo o site no WAMP dão-me os seguintes erros:

Deprecated: mysql_query(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO

Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in

abro os erros e sou informado que "Warning This extension is deprecated as of PHP 5.5.0, and will be removed in the future. Instead, the MySQLi or PDO_MySQL extension should be used."

o mesmo já tinha acontecido com a conexão ao mysql, mas aí consegui resolver usado o tal mysqli. Mas neste caso é totalmente diferente, quando uso o MySqli_query ou mysqli_num_rows() que são umas das alternativas apresentadas, recebo erro novamente e vou ver no Manual PHP diz o seguinte: "function.mysqli-query doesn't exist. Closest matches:"

Estou um pouco perdido, alguém sabe como resolver este problema???

deixo o código em baixo:

Usando MySQL

<?php
session_start();
if (isset($_SESSION["manager"])){
header("location:index.php");
exit();
}
?>
<?php
if(isset($_POST["username"])&&isset($_POST["password"])){

$manager=preg_replace('#[^A-Za-z0-9]#i','',$_POST["username"]);
$password=preg_replace('#[^A-Za-z0-9]#i','',$_POST["password"]);


$cnn= include "../lojascript/connect_mysql.php";
$sql=mysql_query( "SELECT id FROM admin WHERE username='$manager' AND password='$password' LIMIT 1");

$existCount=mysql_num_rows($sql);
if ($existCount==1){
  while ($row = mysql_fetch_array($sql)){
  $id=$row["id"];
}
$_SESSION["id"]=$id;
$_SESSION["manager"]=$manager;
$_SESSION["password"]=$password;
header("location:index.php");
exit();
  }else {
echo 'Informação incorrecta <a href="index.php"> Clique aqui</a>';
exit();
}
}
?>

Usando MySQLi

 <?php
session_start();
if (isset($_SESSION["manager"])){
    header("location:index.php");
    exit();
}
?>
<?php
if(isset($_POST["username"])&&isset($_POST["password"])){
    
    $manager=preg_replace('#[^A-Za-z0-9]#i','',$_POST["username"]);
    $password=preg_replace('#[^A-Za-z0-9]#i','',$_POST["password"]);
    
    
    $cnn = include "../lojascript/connect_mysql.php";
    $query= "SELECT id FROM admin WHERE username='$manager' AND password='$password' LIMIT 1";
    $result= mysqli_query($cnn,$query) or die(mysqli_error());
    $num_row = mysqli_num_rows($result);
     
    if ($num_row==1)
    {
    while ($row = mysqli_fetch_array($result)){
        $_SESSION["id"]=$row["id"];
    }
    
    
    $_SESSION["id"]=$id;
    $_SESSION["manager"]=$manager;
    $_SESSION["password"]=$password;
    header("location:index.php");
    exit();
  }else {
    echo 'Informação incorrecta <a href="index.php"> Click here</a>';
    exit();
    }
}
?> 
Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Caro Marcelo.

O mysqli_query() existe sim, porém é usado na forma procedural. O que você apresentou é o estilo orientado a objeto.

http://php.net/manual/pt_BR/mysqli.query.php

Se não me engano, o mysql_real_escape_string() era muito usado para evitar o sql_injection no mysql, porém ficou obsoleto e não é usado no mysqli. Com isso, o estilo orientado a objeto é o mais recomendado. Veja:

http://es1.php.net/manual/en/mysqli-stmt.execute.php

http://php.net/manual/en/mysqli.prepare.php

Abraço

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...