2012-11-15 2 views
2

일반 mysql_ *에서 PDO로 마이그레이션 중입니다 (예, 캘린더에서 2012라는 것을 알고 있습니다).
나는 ("FROM ... SELECT *") = $ DB-> FetchAll f를 $ 같은 일을 할 수있는 기회가 내 웹 사이트에 간단한 래퍼 클래스를 쓰고 있어요. 여기에 내가 뭘 내용은 다음과 같습니다PDO_MYSQL : 일반 오류 2014

public function Query($q, $errmessage="", $params=array()) { 
    try { 
    $stmt=$this->connect->prepare($q); 
    if (is_array($params) && count($params)>0) { 
    $stmt->execute($params); 
    } else { 
    $stmt->execute(); 
    } 
    return $stmt; 
    } catch(PDOException $e) { 
    die($errmessage.": ".$e->GetMessage()); 
    } 
    } 

    public function Fetch($q, $arraylist=0) { 
    if (!is_object($q)) { // Assuming it's a raw query 
    $stmt=$this->Query($q, "Unable to process the query for fetching"); 
    } else $result=$q; 
    $f=$stmt->Fetch(); 
    return $f; 
} 

을 그리고 이것은 "일반적인 오류 2014"예외가 발생합니다.
도움을 주시면 감사하겠습니다.
감사합니다.

+0

[source] 당신은 핀 포인트를하기 위해 줄을 수 있습니까? 전체 클래스를 제공 할 수 있습니까 (아마도 특성 중 하나에 예상 한 내용이 포함되어 있지 않기 때문일 수 있습니다) – FMaz008

+0

여기에 있습니다 : [PasteBin] (http://pastebin.com/rAUyCLna). 미리 감사드립니다! –

+0

아마 문제를 해결하지는 못하지만, 변수가없는 쿼리를 준비하는 자신의 쿼리 함수를 호출하는 대신 http://php.net/manual/fr/pdo.query를 사용하는 것이 어떻습니까? .php? 조금 더 빨라질 것입니다. – FMaz008

답변

2

2014는 오류 코드입니다, 년이 아닙니다. 다음에 googling the error을 시도하십시오.

$ pdo-> 쿼리 ("(test (일부) 값으로 '1111111111111111'를 INSERT), ('1111111111111'); - 나는 제거는 SQL COMMENT AM ME는이 문제를 해결할 것") ;

";" 두 번째 쿼리는 두 번째 쿼리 만 실행하는 다중 문입니다. 두 번째 "결과"는 PDOStatement-> nextRowset을 사용하여 에 액세스 할 수 있습니다. [source]

나 :

우리는 새로운 서버에서이 오류가 이유 동일한 코드가 다른 서버에 잘 실행 한 후, 추적하려고 시간을 소비 한 후, 우리는 문제를 발견 구형 MySQL 클라이언트 라이브러리 ( 웹 서버) 및 최신 버전의 MySQL 서버 ( 데이터베이스 서버 상자에서 실행)이어야합니다.

+0

이 다중 쿼리 문제를 알고 있습니다. 그러나 여러 문장이있는 유일한 장소는 다음과 같습니다 :'PDO :: MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8; SET CHARACTER_SET_DATABASE = 'utf8'; SET TIME_ZONE = 'Europe/Kiev'"'. –

+0

답변이 업데이트되었습니다. MySQL 클라이언트 라이브러리가이 오류의 내 인터넷 검색에서 봤던 유일한 문제였습니다. – Sammitch

+6

그와 함께 무례하지 마십시오. 그는 2014 년이 1 년이라고 생각했다고 말한 적이 없으며, PDO로 이주 할 시간이 다가왔다. – FMaz008

관련 문제