Добрый день. Бьюсь уже вторые сутки не могу понять почему запрос не срабатывает , уже вообще идей нет. Вот код PHP: function __construct() { parent::__construct(); try{ $this->getOrgIdStmt = self::$PDO->prepare("SELECT organisation_id from organization where ident=2234"); } catch (PDOException $e) { print_r($e->getMessage()); } } и далее код вызова PHP: $array = array(); $result = $this->getOrgIdStmt->execute(); print_r("!!!!!!!!!!".$result); foreach ($result as $row) { print_r("result======"); print_r($row); } Пишет варнинг Код (Text): Warning: Invalid argument supplied for foreach() in C:\xampp\htdocs\PhpProject1\datamappers\ProblemMapper.php on line 63 В начале хотел с параметром передавать но он вообще никак не работает Поэтому уже вообще без параметра сделал просто как тест. Но он даже так не работает. В таблице такой идентификатор точно есть ,столбец тоже проверял , есть такой
ты бы хоть доки читал. https://php.ru/manual/pdostatement.execute.html - возвращает true или false таким образом $result у тебя true или false ну и как ты его foreach'ить собрался?
Попробовал так сделать PHP: $result = $this->getOrgIdStmt->fetch(PDO::FETCH_ASSOC); print_r("!!!!!!!!!!".$result[0]); но он пишет Undefined offset: т.е получается туда ничего не заносится (
Я весь твой код не видел, но по кускам это должно быть реализовано примерно так PHP: function __construct() { parent::__construct(); try{ $this->getOrgIdStmt = self::$PDO->prepare("SELECT organisation_id from organization where ident= :ident"); } catch (PDOException $e) { print_r($e->getMessage()); } } $arr = []; $resBool = $this->getOrgIdStmt->execute([':ident'=>150]); if(!$resBool){ echo 'Что то пошло не так'; }else{ $res = $this->getOrgIdStmt->fetchAll(); //Дальнейшие действия foreach(){} }
Да вот так и делаю ( Вот весь код моего класса PHP: class ProblemMapper extends Mapper{ function __construct() { parent::__construct(); try{ // $this->selectStmp= self::$PDO->prepare("SELECT * from help where userFK_id =?"); $this->selectStmp= self::$PDO->prepare("SELECT * from problem where id_user_fk =?"); $this->updateStmt= self::$PDO->prepare( "UPDATE problem set inn=?, comment=?,status=?,timeproblem=?,contactinfo=?,problemdescription=? where problem_id=?"); // $this->insertStmt = self::$PDO->prepare("INSERT into help (id_organisation_fk,id_user_fk,start_date,end_date,contactinfo,description) values(?,?,?,?,?,?)"); $this->insertStmt = self::$PDO->prepare("INSERT into problem (id_organisation_fk,id_user_fk,start_date,end_date,contactinfo,description) values(?,?,?,?,?,?)"); $this->$getOrgIdStmt = self::$PDO->prepare("SELECT organisation_id from organization where inn=:inn"); } catch (PDOException $e) { print_r($e->getMessage()); } } function getCollection(array $raw) { return new ProblemCollection($raw, $this); } protected function doCreateObject(array $array) { $stack=array(); foreach ($array as $value) { $obj = new Problem($value['problem_id']); $obj->setUserKFId($value[1]); $obj->setStartDate($value[3]); $obj->setContactinfo($value[4]); $obj->setProblemDescription($value[4]); array_push($stack, $obj); } return $stack; } protected function doInsert(\DomainObject $object) { try{ $array = array(); $resBool = $this->getOrgIdStmt->execute([':inn'=>700707077125]); $res = $this->$getOrgIdStmt->fetchAll(); $values = array( 10, $object->getUserFKid(), $object->getStartDate(), $object->getStartDate(), $object->getContactinfo(), $object->getProblemDescription() ); $this->insertStmt->execute($values); $id = self::$PDO->lastInsertId(); $object->setId($id); } catch (PDOException $e) { print_r($e); } } protected function selectStmp() { return $this->selectStmp; } public function update(\DomainObject $object) { $values = array( $object->getInn(), $object->getContactinfo(), $object->getStartDate(), $object->getproblemdescription(), $object->getUserFKid()); $this->updateStmt->execute($values); } } но всеравно выдается ошибка PHP: Notice: Undefined variable: getOrgIdStmt in C:\xampp\htdocs\PhpProject1\datamappers\ProblemMapper.php on line 27 Fatal error: Cannot access empty property in C:\xampp\htdocs\PhpProject1\datamappers\ProblemMapper.php on line 27
PHP: $this->$getOrgIdStmt = self::$PDO->prepare("SELECT organisation_id from organization where inn=:inn"); Пока нашел только одну ошибку
хмм нет тут все правильно, если поставить т.к. написали то ругается на эту строку PHP: Notice: Undefined variable: getOrgIdStmt in C:\xampp\htdocs\PhpProject1\datamappers\ProblemMapper.php on line 27 Fatal error: Cannot access empty property in C:\xampp\htdocs\PhpProject1\datamappers\ProblemMapper.php on line 27
Ты хотя бы видел код который ты сюда скопировал?Это не я поставил, а ты в своем коде.Я всего лишь копирнул ТВОЙ код и указал место где ты ошибся. Убери $ у getOrgIdStmt и потом пришли результат,будем разбираться дальше