>  기사  >  백엔드 개발  >  phalcon 데이터베이스 모듈 문제

phalcon 데이터베이스 모듈 문제

WBOY
WBOY원래의
2016-08-04 09:19:491233검색

회사에서는 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" 메소드의 자리 표시자는 숫자여야 합니다. 예를 들어 문서의 빨간색 상자에 있는 영어:

phalcon 데이터베이스 모듈 문제

즉, SQL의 매개변수 바인딩 자리 표시자를 다음과 같이 "?"로 바꿔야 합니다.

<code class="php">    $statement=$db->prepare('SELECT * FROM robots WHERE name = ?');
    $result=$connection->executePrepared($statement, array('Voltron'));</code>

둘째, 쿼리 메서드 자체가 객체 인스턴스를 반환합니다. 이는 문서에 설명되어 있으며 배열을 반환하는 방법도 설명되어 있습니다.

phalcon 데이터베이스 모듈 문제

또 다른 샘플 코드를 알려드리겠습니다.

<code class="php">        $result = $connection -> query($sql);
        $result -> setFetchMode(Db::FETCH_ASSOC);
        $array = $result -> fetchAll();</code>

알림: 더 많은 문서를 읽어보세요:)

참고문서: 링크 설명
링크 설명

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.