회사에서는 phalcon에서 제공하는 클래스 라이브러리를 사용하지 않고 PhalconDbAdapterPdoMysql을 사용하여 다시 캡슐화했는데, 그 안에 많은 메소드가 문제가 있는 것을 발견했습니다.
예를 들어
$statement = $db->prepare('SELECT * FROM robots WHERE name = :name');
$result = $connection->executePrepared($statement, array('name' => 'Voltron'));
이 코드는 원활하게 실행되지 않고 항상 잘못된 값으로 오류를 보고합니다
그리고 이것은
$resultset = $connection->query("SELECT * FROM robots WHERE type='mechanical'");
$resultset = $connection->query("SELECT * FROM robots WHERE type='mechanical'"); robots WHERE type=?", array("mechanical"));
반환되는 것은 배열이 아니지만 배열의 결과 집합을 검색할 수 있다는 설명이 없습니다. 다시 설명 방법을 사용하여
어쨌든 기다리세요. . . 위 예시는 모두 공식 문서에서 발췌한 것입니다
회사에서는 phalcon에서 제공하는 클래스 라이브러리를 사용하지 않고 PhalconDbAdapterPdoMysql을 사용하여 다시 캡슐화했는데, 그 안에 많은 메소드가 문제가 있는 것을 발견했습니다.
예를 들어
$statement = $db->prepare('SELECT * FROM robots WHERE name = :name');
$result = $connection->executePrepared($statement, array('name' => 'Voltron'));
이 코드는 원활하게 실행되지 않고 항상 잘못된 값으로 오류를 보고합니다
그리고 이것은
$resultset = $connection->query("SELECT * FROM robots WHERE type='mechanical'");
$resultset = $connection->query("SELECT * FROM robots WHERE type='mechanical'"); robots WHERE type=?", array("mechanical"));
반환된 결과는 배열이 아니지만 배열의 결과 집합을 검색할 수 있다는 설명이 없습니다. 다시 설명 방법을 사용하여
어쨌든 기다리세요. . . 위 예시는 모두 공식 문서에서 발췌한 것입니다
우선, "executePrepared" 메소드의 자리 표시자는 숫자여야 합니다. 예를 들어 문서의 빨간색 상자에 있는 영어:
즉, SQL의 매개변수 바인딩 자리 표시자를 다음과 같이 "?"로 바꿔야 합니다.
<code class="php"> $statement=$db->prepare('SELECT * FROM robots WHERE name = ?'); $result=$connection->executePrepared($statement, array('Voltron'));</code>
둘째, 쿼리 메서드 자체가 객체 인스턴스를 반환합니다. 이는 문서에 설명되어 있으며 배열을 반환하는 방법도 설명되어 있습니다.
또 다른 샘플 코드를 알려드리겠습니다.
<code class="php"> $result = $connection -> query($sql); $result -> setFetchMode(Db::FETCH_ASSOC); $array = $result -> fetchAll();</code>
알림: 더 많은 문서를 읽어보세요:)
참고문서: 링크 설명
링크 설명