3 votes

var_dump produit une chaîne vide - php

Bonjour J'effectue une requête SQL (qui ne renvoie qu'une ligne) et j'imprime une colonne particulière à l'écran à des fins de test. Le problème que je rencontre est que la colonne que j'imprime contient une chaîne de 12 caractères (abcdef123456), mais parfois la variable imprimée est vide. Ainsi, lorsque je fais var_dump($test);

Parfois, je reçois :

string(12) "abcdef123456"

mais d'autres fois, je reçois

string(12) ""

Je ne comprends pas pourquoi il sait qu'il y a 12 caractères alors qu'il est toujours vide, et parfois il dit 12 caractères alors qu'il est plein. A cause de cela, je ne peux pas exécuter d'autres fonctions car elles dépendent de la chaîne de caractères.

EDIT : voici la requête

$query="SELECT * FROM members WHERE name='$member'";
$sqlResult=mysql_query($query);
$row = mysql_fetch_assoc($sqlResult);
$test = $row["membercode"];
var_dump($test);

2voto

Mike B Points 18950

Il est fort probable que votre chaîne de caractères contienne des balises html qui sont interprétées par le navigateur.

$foo = "<p><img><div><table>";
var_dump($foo); // string(20) ""

2voto

kba Points 10874

Où voyez-vous qu'il est écrit string(12) "" ? N'oubliez pas de TOUJOURS regarder la sortie brute, le code source. Pas la façon dont le navigateur le rend.

Par exemple, si la chaîne est <span></span> qui n'apparaîtra pas du tout.

1voto

John Kugelman Points 108754
  1. Essayez d'ajouter header('Content-Type: text/plain') pour rendre votre page sous forme de texte au lieu de HTML. Ou utilisez "View Source" pour afficher la source HTML au lieu de la page rendue. Il peut y avoir des balises HTML cachées dans la chaîne de caractères.

  2. Essayer var_dump(bin2hex($test)) . Il peut y avoir des caractères de contrôle invisibles tels que "\0" que vous ne pouvez pas voir. Par exemple :

    $ php <<< '<?php var_dump("\0\0\0\0"); ?>'
    string(4) ""
    $ php <<< '<?php var_dump(bin2hex("\0\0\0\0")); ?>'
    string(8) "00000000"

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X