Проблема PHP5 sqli bind_param с привязкой булевых значений

PHP имеет функцию get_object_vars, чтобы получить все свойства объекта. И потому что вы создаете динамические свойства в конструкторе. Итак, мы определили метод getAccount, который получит все свойства в массиве $properties, затем проведем итерацию по всему этому и поместим всю информацию в один массив $account и, наконец, вернем этот массив.

<?php
class CreateAccount {

    public function __construct($id,$namne,$fromdate,$group,$comment,$firstnamne,$org,$sid,$todate)
    {
        $this->countrows = null;
        $this->id = $id;
        $this->namne = $namne;
        $this->fromdate = $fromdate;
        $this->group = $group;
        $this->comment = $comment;
        $this->firstname = $firstnamne;
        $this->org = $org;
        $this->sid = $sid;
        $this->todate = $todate;
    }

    public function getAccount()
    {
        $properties = get_object_vars($this);
        $account    = [];
        foreach($properties as $property)
        {
            $account[$property] = $this->{$property};
        }
        return $account;
    }
}

/* Fill your Contact Object */
$contact = new CreateAccount("x6529","Jon Doe","2019-01-16","STD_GROUP","Guest User","Helen Doe","HQ","200410201234","2019-01-17");

/* Set your parameters for the request */
$params = array(
  "application" => 'api',
  "account" => $contact->getAccount(),
);

print_r($params);
?>
6
задан Charles 24 December 2012 в 23:46
поделиться

2 ответа

Вы могли преобразовать булевскую переменную в 1 или 0 использований intval () (или бросить ее с (интервалом) или (целым числом)). Согласно mysqli_stmt:: bind_param () документация, единственные типы, которые можно связать, является ints, удваивается, строки и блобы.

10
ответ дан 9 December 2019 в 22:41
поделиться

Спасибо за ответ мне наконец удалось решить проблему (после того, как, пробуя преобразование типа и даже упуская его из bind_param путем фиксации его как 1 или 0 в запросе). Так или иначе 'читайте', зарезервированное имя столбца в MySQL, таким образом, я просто изменил имя столбца, и это хорошо работает. Кажется странным для получения того конкретного сообщения об ошибке однако для этого вида проблемы.

1
ответ дан 9 December 2019 в 22:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: