Te repito, USA EL MANUAL, estas cometiendo errores y es porque piensas que mysqli es igual a mysql, lo cual esta completamente mal, te dejaré el código correcto pero como excepción ya que estoy en contra de entregar código para hacer copy/paste y que ustedes ni si quiera analicen lo que están haciendo...
Código PHP:
Ver original<?php
if (mysql_connect_error()) {
}
//preparamos la sentencia SQL, ojo que no eh indicado los valores nuevos ni el valor para el where, esto lo dejamos para despues
$sql = 'UPDATE agenda SET apellidos = ?, preferencias = ?, WHERE nombre = ?';
//ahora le decimos a mysqli que prepare la sentencia SQL anterior para pasarle los valores necesarios
/**
* ahora le indicamos a mysqli los valores, primero le pasamos la sentencia preparada, luego el tipo de dato que se va a entregar
* para saber el tipo de dato es:
* s: el tipo es string
* i: el tipo es entero
* d: el tipo es double
* b: el tipo es blob y se envia en paquetes
* como las tres variables son string indicamos 3 s (sss), cada letra es por cada variable, si tubieramos 3 variables string y 2 enteros o int
* seria sssii...
*/
//ejecutamos la sentencia SQL
//verificamos cuantos registros fueron afectados
echo '<p>Tiene permisos</p>';
}else {
echo '<p>No tiene permisos</p>';
}
Es mejor que te vayas adaptando, ya que el cambio no se ah dado nada mas porque si, si no porque mysqli y PDO suponen una mejora importante tanto en performance como en seguridad...
Mejor te dejo el mismo código pero comentado, para que sepas que es cada cosa, para mas info te repito,
VISITA EL MANUAL DE PHP