Problema de PHP: mysqli_error () espera exactamente 1 parámetro, 0 dado

Solo estoy trabajando con algunos tutoriales en un libro, y estoy tratando de poner una opción de ‘Filtro’ en mi página. Entonces, cuando la página se carga, debería enumerar todos los valores, pero si se selecciona algo de la opción de filtro de lista desplegable, la lista debería cambiar en la página. Aquí está mi código:

query($sql) or die(mysqli_error()); $columns = array('Blue', 'Pink', 'Yellow'); if (isset($_GET['column']) && in_array($_GET['column'], $columns)) { $col = $_GET['column']; // prepare the SQL query $sql = "SELECT * FROM users WHERE user_pref = $col"; // submit the query and capture the result $result = $conn->query($sql) or die(mysqli_error()); } ?>     Filter by User Pref      <option >Blue <option >Pink <option >Yellow     fetch_assoc()) { ?> 
User name User pref    

El error que estoy recibiendo es

Advertencia: mysqli_error () espera exactamente 1 parámetro, 0 dado en la línea 23. Esta es la línea 23: $ resultado = $ conn-> consulta ($ sql) o die (mysqli_error ());

Gracias por adelantado

Como puede ver en el manual http://php.net/manual/en/mysqli.error.php , debe pasar la conexión a mysqli_error (), por lo que esa línea debe ser

 $conn->query($sql) or die(mysqli_error($conn)); 

Estás mezclando OOP y syntax funcional.

 mysqli_error(); 

debiera ser:

 $conn->error;