php – Erro “expects parameter 1 to be mysqli, string given in”

Question:

I'm creating an insert form for registration, but when I click on the button it's giving me an error:

Warning: mysqli_query() expects parameter 1 to be mysqli, string given in C:\wamp64\www\Beauty and Harmony Project\Beauty and Harmony – site\php\cadastro.php on line 25

What is it getting?

registration.php:

<html>
<head>
    <title>cadastro concluido</title>
    </head>

    <body>


<?php 
include("../php/conexao.php");


$nome = $_POST['nome'];
$ende = $_POST['endereco'];
$tel = $_POST['telefone'];
$comple = $_POST['complemento'];
$login = $_POST['login'];
$senha = $_POST['senha'];
$mail = $_POST['emails'];
$nume = $_POST['numero'];


$sql = "INSERT INTO usuario(nome, telefone, endereco, numero, complemento, email, login, senha) VALUES('$nome', '$tel', '$ende', '$nume', '$comple', '$mail', '$login', '$senha')";

        $result = mysqli_query($bd, $sql) or die ('Error querying database.');

        mysqli_close($bd);  
?>

    </body>

</html>

connection.php:

<?php 

$host = "localhost";
$usuario = "root";
$senha = "";
$bd="admin_site";



$mysqli = new mysqli($host, $usuario, $senha, $bd);


if($mysqli -> connect_errno) {
    echo "Falha na conexão: (".$mysqli->connect_errno.") ".$mysqli->connect_error;
}


?>

line 25:

 $result = mysqli_query($bd, $sql) or die ('Error querying database.');

can anybody help me? Thanks…

Answer:

Virtually all mysqli functions use the database connection "link" as the first parameter.

You do:

$bd="admin_site";

And try to use

$result = mysqli_query($bd, $sql);

The 1st parameter must be the connection, not the DB name.

The correct thing would be:

$result = mysqli_query( $mysqli, $sql );

Improvement suggestion:

In order not to make a mess, I suggest changing the link/connection name to $con or $link , which are very common in documentation and examples:

$link = new mysqli($host, $usuario, $senha, $bd);

and then:

$result = mysqli_query( $link, $sql );
Scroll to Top