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);
?>
Вы могли преобразовать булевскую переменную в 1 или 0 использований intval () (или бросить ее с (интервалом) или (целым числом)). Согласно mysqli_stmt:: bind_param () документация, единственные типы, которые можно связать, является ints, удваивается, строки и блобы.
Спасибо за ответ мне наконец удалось решить проблему (после того, как, пробуя преобразование типа и даже упуская его из bind_param путем фиксации его как 1 или 0 в запросе). Так или иначе 'читайте', зарезервированное имя столбца в MySQL, таким образом, я просто изменил имя столбца, и это хорошо работает. Кажется странным для получения того конкретного сообщения об ошибке однако для этого вида проблемы.