이 질문에 대한 여러 가지 관련 답변을 살펴 보았지만이 사례에 적용되는 답변을 찾을 수 없습니다.문자열 변환에 대한 연관 배열
$DatabaseConfig = array('DB_TYPE' => 'MySQL',
'DB_HOST' => 'localhost',
'DB_NAME' => 'simpleCMS',
'DB_USER' => 'root',
'DB_PASS' => 'mypass');
$dsn = $this->DatabaseConfig['DB_TYPE'].':host='.$this->DatabaseConfig['DB_HOST'].';dbname='.$this->DatabaseConfig;
나는 Notice: Array to string conversion
이되어 연결이 없습니다.
매개 변수를 수동으로 삽입하면 모든 것이 잘 작동합니다.
이 경우 키 값을 문자열로 변환하는 방법은 무엇입니까? 나는 다양한 장소에 (string)
을 놓으려고했으나 행운이 없었다.
약간의 관련이 없지만, 누군가가 이것을 만드는 것에 대한 생각이 있다면 $dsn
조금 덜 장황합니까? 나는 더 깨끗한 디자인을 찾을 수 없었다.
편집은 모두 그냥 마지막 매개 변수 누락 된 지적 감사합니다. Notice: Array to string conversion
은 더 이상 볼 수 없습니다.
나는 생각하지만, 새로운 치명적인 오류 제시 :
Fatal error: Call to undefined method PDOException::query()
그리고 PDOException :
exception 'PDOException' with message 'could not find driver'
하지만 매개 변수를 수동으로 입력 할 때 다시 연결이 잘 작동합니다.
$dsn
의 현재 형식이 허용되지 않는 이유는 무엇입니까?
아마도 $ this-> DatabaseConfig = array (...); ' –
결국, ''; dbname = '. $ this-> DatabaseConfig ['DB_NAME ']'이 필요합니다.(마지막에'[ 'DB_NAME'] '가 없습니다.) – bishop
업데이트 후에 더 많은 코드를 게시해야합니다. 당신은 어떻게 든 PDO 실패로부터 잡힌 예외에 대해'query()'를 호출했다. 연결이 성립 된 곳의 코드와'query()'를 호출하는 곳을 게시하십시오. –