simples especiales escapar dobles dentro concatenar comillas caracteres php sql variables heredoc

php - especiales - nowdoc



Usar variable dentro de heredoc en PHP(práctica de SQL) (1)

Su Heredoc necesita una pequeña modificación (¡porque en realidad es Nowdoc!):

echo <<<EX <p>Game: {$data[''game_name'']}<br/> the owner of the game is {$data[''game_owner'']} </p> EX;

  • Los identificadores Heredoc (a diferencia de los de nowdoc) no pueden ser citados. ''EX'' necesita convertirse en EX .
  • El terminador Heredoc no debe tener ningún espacio en blanco anterior. De los documentos:

    Es muy importante tener en cuenta que la línea con el identificador de cierre no debe contener otros caracteres, excepto posiblemente un punto y coma (;).

    Estás confundiendo Nowdoc con Heredoc.

  • Los tipos de datos complejos en cadenas deben estar rodeados por {} para que se analicen como variables. Por ejemplo, $data[''game_name] debe ser {$data[''game_name]} .

Estás mezclando heredoc y nowdoc aquí. Desea utilizar Heredoc y no Nowdoc porque tiene variables dentro de su cadena. Heredocs son cadenas dobles entrecomilladas "extendidas", mientras que nowdocs son más parecidas a una única cadena entrecomillada, en que las variables no se analizan en las cadenas de texto de nowdoc, sino que están en heredoc.

  • Más sobre Heredoc here .
  • Más sobre Nowdoc here .

Lea la documentación con más cuidado en estos.

Soy un novato en PHP / SQL y estoy tratando de usar una variable dentro de un heredoc ya que necesito usar mucho texto. Solo he incluido la primera oración porque es suficiente para mostrar el problema).

Mi problema es que dentro del heredoc, las variables (ver a continuación: $data[''game_name] y $data[''game_owner''] ) no se reconocen como una variable, sino como texto sin formato. ¿Como puedo resolver esto?

<?php try { //i am connecting the the database base mysql ''test'' $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION; $bdd = new PDO(''mysql:host=localhost;dbname=test'', ''root'', '''', $pdo_options); //the i read the data in the databse ''video_dame'' $response = $bdd->query(''SELECT * FROM video_game''); //pour qu''elle soit visible à l''écran, on affiche chaque entrée une à une while ($data= $response->fetch()) { echo <<<''EX'' <p>Game: $data[''game_name]<br/> the owner of the game is $data[''game_owner''] </p> EX; } //i end the sql request $response->closeCursor(); } catch (Exception $e) { die(''Error: ''.$e->getMessage()); } ?>

Cualquier ayuda sería muy apreciada.