Вызов ключа массива json_decoded возвращает NULL

Я изо всех сил пытаюсь понять, почему в некоторых случаях этот конкретный способ доступа к ключу в PDO работает, а когда я пытался сам, - нет.

Например,

$sth = $this->dbh->prepare("UPDATE eq_question SET ". $user->field ."=? WHERE questID=?");

этот PDO получил доступ к ключу массива (который был в объекте javascript, а затем опубликован и json_decoded в PHP) с $user->field, но когда я попытался смоделировать декодированный массив и использовать var_dump ($user->field), Я получу NULL,

Может кто-нибудь сказать мне, почему это происходит?

В приведенном ниже примере, когда я var_dump ($user)Я могу видеть все ключи, но когда я делаю var_dump($user->field)Я только получаю nullследовательно, вызвать класс updateValue потерпеть поражение.

Пример, чтобы понять, что я имею в виду:

class User {

    private $dbh;

    public function __construct($host,$user,$pass,$db)  {   
        $this->dbh = new PDO("mysql:host=".$host.";dbname=".$db,$user,$pass);           }
public function updateValue($user){ 
$sth = $this->dbh->prepare("UPDATE eq_question SET ". $user->field ."=? WHERE questID=?");
$sth->execute(array($user->newvalue, $user->id));
}


$user = new stdClass;
echo " <br>|||SPACE||| BEFORE ASSIGN A OBJECT OT THE ARRAY-  ";
$userParams = array('id' => 1, 'field' => 'questTitle', 'newvalue' => "Baaaaa");
var_dump($userParams);
$user = json_encode(array("user"=>$userParams));
echo " <br>|||SPACE||| BEFORE DECODE-  ";
var_dump($user);
echo " <br>|||SPACE||| BEFORE DECODE of field-  ";
var_dump($user->field);
$user = json_decode($user);
echo " <br>|||SPACE||| AFTER DECODE-  ";
var_dump($user);
$userN=new User(...//info is hided by intention!); 
$dump=$userN->updateValue($user);
echo " <br>|||SPACE||| PRINT-----  ";
print($dump);
echo " <br>|||SPACE||| VAR_DUMP-----  ";
var_dump($dump);

Благодарю вас

0 ответов

Другие вопросы по тегам