usando sencillo hacer ejemplo datos conexion conectar con como buscador avanzado archivo php mysql apache server

sencillo - En mi script php, mi conexión al servidor funciona, pero mis consultas sql no



conexion a base de datos php mysqli (2)

Mi sugerencia para usted es PDO :

$dsn = ''mysql:host=localhost;dbname=''.$dbname;//$dbName is the name of your database $user = ''root''; $pass = ''123'';//use your login information here $db = new PDO($dsn, $user,$pass); $query = "SELECT * FROM book_table WHERE Title LIKE :info OR Author LIKE :info OR Barcode LIKE :info"; $ps = $db->prepare($query); $ps->bindValue('':info'', $input) $ps->execute(); $result = $ps->fetchAll(PDO::FETCH_ASSOC); //iterate over result if (!empty($results)){ foreach ($result as $row) { echo "<br>Title: " . $row["Title"]. " - Author: " . $row["Author"]; } } else { echo " <br> 0 results"; }

Además, recuerde utilizar MySQL LIKE de la manera correcta. Cuando desee hacer coincidir una parte de un String, debe usar el símbolo % .

Ex:

SELECT * FROM book_table WHERE Title LIKE "%goodbook%"

Devolverá todas las filas que tengan el "goodbook" como parte del título.

La conexión funciona, no obtengo un error de conexión. Pero cuando ejecuto el script obtengo un error de índice indefinido y arroja "0 resultados", aunque mi tabla está llena y estoy buscando algo que sé que está en la mesa.

Estoy usando MySQL workbench para administrar la base de datos y apache (xampp) para alojar el servidor local y ejecutar los scripts PHP. ¿Podría ser este el problema? ¿Hay alguna manera de alojar la base de datos en el mismo lugar que el sitio web de apache?

$sql="SELECT * FROM book_table WHERE Title LIKE $input OR Author LIKE $input OR Barcode LIKE $input"; $result = $conn->query($sql); if ($result) { while($row = $result->fetch_all()) { echo "<br>Title: " . $row["Title"]. " - Author: " . $row["Author"]; } } else { echo " <br> 0 results"; }


Puedes intentarlo así Como usas mysqli_* tengo que hacer las declaraciones preparadas y bind_param .

Nota: no probado. Así que puede ser necesario ajustar un poco.

$param = ''$input''; $sql= $conn->prepare("SELECT * FROM book_table WHERE Title LIKE ? OR Author LIKE ? OR Barcode LIKE ?"); $sql->bind_param("s", $param); $sql->execute(); if($res->num_rows > 0) { while ($row = $res->fetch()) { echo "<br>Title: " . $row["Title"]. " - Author: " . $row["Author"]; } } else { echo " <br> 0 results"; }