Stai mescolando gli stili orientati agli oggetti e procedurali dell'API mysqli :
Stai usando orientato agli oggetti :
$result = new mysqli('localhost', 'user', 'password', 'db');
E, poi, procedurale :
echo "Error with MySQL Query: ".mysqli_error();
Dovresti usare OO o procedural -- ma non entrambi; e se scegli procedurale, le funzioni si aspettano l'identificatore di collegamento passato come parametro.
Ad esempio, mysqli_error
dovrebbe essere chiamato usando l'API orientata agli oggetti :
$link = new mysqli(...);
echo $link->error;
O l'API procedurale :
$link = mysqli_connect(...);
echo mysqli_error($link);
(Ovviamente, non cambierà il fatto che stai riscontrando un errore nella tua query SQL, ma ti permetterà di ricevere il messaggio di errore, che dovrebbe aiutare a trovare la causa di quell'errore)