Vous mélangez les styles orienté objet et procédural de l'API mysqli :
Vous utilisez l'orienté objet :
$result = new mysqli('localhost', 'user', 'password', 'db');
Et, ensuite, procédural :
echo "Error with MySQL Query: ".mysqli_error();
Vous devez utiliser soit OO, soit procédural -- mais pas les deux ; et si vous choisissez procédural, les fonctions attendent l'identifiant du lien passé en paramètre.
Par exemple, mysqli_error
doit être appelé soit en utilisant l'API orientée objet :
$link = new mysqli(...);
echo $link->error;
Soit l'API procédurale :
$link = mysqli_connect(...);
echo mysqli_error($link);
(Bien sûr, cela ne changera pas le fait que vous rencontrez une erreur dans votre requête SQL, mais cela vous permettra d'obtenir le message d'erreur, ce qui devrait vous aider à trouver la cause de cette erreur)