Ver Mensaje Individual
  #1 (permalink)  
Antiguo 04/10/2005, 15:44
Tigervlc
 
Fecha de Ingreso: mayo-2003
Mensajes: 527
Antigüedad: 21 años
Puntos: 3
Exclamación Ayuda con MySQL para PHP

Hola, me he metido de lleno con MySQL manejado por PHP, pero tengo un error que me trae de cabeza. No sé qué es lo que pasa.

Primero que nada, MySQL me funciona bien. Desde la línea de comandos puedo hacer cualquier cosa (crear bases de datos, tablas, modificarlas, administrarlas, etc).

Pero a la hora de usar PHP para acceder a MySQL me da error. Este es el mensaje que recibo:

Cita:
Warning: mysql_connect(): Client does not support authentication protocol requested by server; consider upgrading MySQL client in C:\servidor\web\PHPMySQLAgosto05\tema11_PHP_y_MySQ L\results.php on line 34
select * from books where author like '%4f%'
Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in C:\servidor\web\PHPMySQLAgosto05\tema11_PHP_y_MySQ L\results.php on line 47

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\servidor\web\PHPMySQLAgosto05\tema11_PHP_y_MySQ L\results.php on line 51

Number of books found:


Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in C:\servidor\web\PHPMySQLAgosto05\tema11_PHP_y_MySQ L\results.php on line 72

Warning: mysql_close(): supplied argument is not a valid MySQL-Link resource in C:\servidor\web\PHPMySQLAgosto05\tema11_PHP_y_MySQ L\results.php on line 73
Este es el código php del archivo results.php:

Código PHP:
<?php 
// Crear nombres de variables cortos:
$searchtype strtolower($_POST['searchtype']);
$searchterm $_POST['searchterm'];

// Eliminar posibles espacios antes y después del término a buscar
$searchterm trim($searchterm);

// Comprobar si se han introducido datos en ambos datos de entrada. Aunque $searchtype sea una lista con valor predeterminado
// siempre es aconsejable hacer esto porque en alguna otra página la entrada de $searchtye podría variar (o ser cambiada
// malintencionadamente por algún usuario). Notar que añadimos la línea del 'trim()' antes de este bloque porque si se 
// introdujeran espacios en blanco, estos no darían error en la condición
if (!searchtype || !$searchterm) {
    echo 
'You have not entered search details. Please go back and try again.';
    exit;
}

// Comprobar si la configuración de PHP actual añade automáticamente secuencias de escape (',",\). Si no es así, añadirlas
// manualmente con addslashes()
if (!get_magic_quotes_gpc()) {
    
$searchtype addslashes($searchtype);
    
$searchterm addslashes($searchterm);
}

// Conexión a la base de datos 
$db mysql_connect('localhost''bookorama''miContrasena''books');

// Crear la consulta
$query "select * from books where ".strtolower($searchtype)." like '%".strtolower($searchterm)."%'";
            
// Llevar a cabo la consulta
$result mysql_query($db$query);

// Averiguar número de ocurrencias (filas) obtenidas para posteriormente poder tratarlas una por una
$num_results mysql_num_rows($result); 

// Mostrar número de resultados
echo '<p>Number of books found: '.$num_results.'</p>';

// Bucle para mostrar los resultados en formato HTML
for ($i 0$i $num_results$i++) {
    
// Obtener fila actual
    
$row mysql_fetch_row($result);
    echo 
'<p><strong>'.($i+1).'. Title: ';
    
// Convertir caracteres especiales de HTML en formato HTML y quitar secuencias de escape del resultado obtenido
    
echo htmlspecialchars(stripslashes($row['title']));
    echo 
'</strong><br />Author: ';
    echo 
stripslashes($row['author']);
    echo 
'<br />ISBN';
    echo 
stripslashes($row['isbn']);
    echo 
'<br />Price';
    echo 
stripslashes($row['price']);
    echo 
'/p>';
}

mysql_free_result($result);
mysql_close($db);

?>
El cual es llamado por un archivo HTML normal con un pequeño formulario de búsqueda.

Por qué me aparecen esos errores que me impiden la conexión? Ya sé que puede parecer engorroso este post, pero suplico que me ayudeis porque me encuentro totalmente perdido.