He estado tratando de contar la cantidad de caminos presentes en mi tabla.

enter image description here

Estoy intentando la siguiente consulta

$db_con->query("SELECT COUNT(path) FROM mytable WHERE username='Rbiaali' AND path='C:\MAMP\htdocs\files\Rbiaali\9-5-2019 01 55 AM.zip'")->fetchColumn();

Además, incluso si uso lo siguiente, devuelve el mismo valor: 0

path LIKE 'C:\MAMP\htdocs\files\Rbiaali\9-5-2019 01 55 AM.zip%'

Como en la tabla, podemos ver que hay 6 entradas con la ruta.

1
MR_AMDEV 9 may. 2019 a las 13:32

3 respuestas

La mejor respuesta

Necesita escapar de las barras diagonales inversas, porque la barra diagonal inversa es el carácter de escape en MySQL. \f es un carácter de avance de página.

$db_con->query("SELECT COUNT(path) FROM mytable WHERE username='Rbiaali' AND path='C:\\MAMP\\htdocs\\files\\Rbiaali\\9-5-2019 01 55 AM.zip'")->fetchColumn();

Si obtiene la ruta de una variable, use una declaración preparada:

$stmt = $db_con->prepare("SELECT COUNT(path) FROM mytable WHERE username=:user AND path=:path");
$stmt->execute([":user" => $u, ":path" => $p]);
$stmt->fetchColumn();
5
Barmar 9 may. 2019 a las 10:36

Intenta hacer esto

$result = mysqli_query($con,"SELECT COUNT(path) FROM mytable WHERE username='Rbiaali' AND path='C:\MAMP\htdocs\files\Rbiaali\9-5-2019 01 55 AM.zip'");
$value = mysqli_fetch_object($result);
$data = $value->id;
-2
Anjali Rakholiya 9 may. 2019 a las 10:45

La barra diagonal inversa \ está causando el problema.

Ejecute la variable $path a través del método addslashes().

documentación de addlashes ()

1
Neel Bhanushali 9 may. 2019 a las 10:39