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:
Este es el código php del archivo results.php: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
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
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);
?>
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.