Variable en orden SQL

B

Estoy intentando meter una variable PHP en una orden SQL.

$usuariol=mysqli_real_escape_string($usuario)

$result = mysql_query('SELECT COUNT(Usuarios) AS numerousu FROM Usuariospag WHERE Usuario="$usuariol";');
while($row=  mysql_fetch_array($result)) {
echo $row['numerousu']; }}
 ?>

Creo que esta interpretando literalmente <<$usuariol>>

La orden funciona porque cuando le meto por ejemplo "Luis" si me cuenta los Luises que hay.

Me parece que hay que definirlo como valor o algo asi pero no tengo ni idea de como se hace. ¿Puede alguien echarme una manilla?

vincen
mysql_query("SELECT user, nickname FROM accounts WHERE user = '$nombre'");

Usa MysqlI, mysql ya no se usa

zeros-cool

Tengo el PHP algo oxidado pero, ¿no sería tal que así?

mysql_query("SELECT user, nickname FROM accounts WHERE user = '" & $nombre &"');
RaymaN

Para introducir una variable en un string sin concatenar tienes que usar las comillas dobles:

mysql_query("SELECT COUNT(Usuarios) AS numerousu FROM Usuariospag WHERE Usuario='{$usuariol}'");

2 1 respuesta
B

Por si alguien tiene el mismo problema, #4 me ha funcionado, con los corchetes. Gracias.

1 respuesta
eXtreM3

#5 sin corchetes funciona igual si concatenas con el punto.

B

Añado:

  • mysql* está en desuso y se elimina en PHP 7. Usa PDO o si no te queda otro remedio sin refactorizar mysqli* .
  • Créate una clase para conexiones de bases de datos con el patrón singleton para reutilizar la conexión. Probáblemente sea matar moscas a cañonazos ahora pero acostúmbrate ahora para el futuro.
  • No uses ?> al final del código, te puede dar problemas con retornos de linea. Solo debes usarlo si tienes mezclado html y php y en ese caso tampoco deberías porque la vista y el controlador deben estar separado.

Si estos consejitos evitan que me encuentre en un repositorio código espaguetti, habrá merecido la pena.

2 1 respuesta
B

#7 No entiendo nada de lo que dices, pero suena a que la estoy cagando con gravedad. Que dios me coja confesado.

Usuarios habituales