2016-08-05 3 views
1

PHP 5.4에서 작동하지만 PHP 5.6에서는 작동하지 않는 코드가 있습니다. PDO에 몇 가지 문제가 있습니다.공유 호스트에 PDO 클래스가 없습니다.

<?php 
session_start(); 

error_reporting(E_ERROR | E_WARNING | E_PARSE); 

ini_set('session.cookie_httponly', 1); 
ini_set('session.gc_maxlifetime', 999604800); 
ini_set('session.cookie_lifetime', 999604800); 

$baseurl = 'http://'.$_SERVER['SERVER_NAME'].'/'; 
$hostname = $_SERVER['SERVER_NAME']; 

//if(!defined('PDO::ATTR_DRIVER_NAME')) { die('PDO unavailable'); } 

class connect_data { 

    static $host = 'localhost'; //хост базы данных 
    static $username = 'aqq13807'; //логин базы данных 
    static $password = 'd,8p9\FP%kZDZ)R'; //пароль базы данных 
    static $db = 'aqq13807_d1'; //имя базы данных 

} 

class sql { 
bla-bla-bla 
} 

$sql = new sql(); 

class pdo_connector { 

    //const DBNAME = 'aqq13807_d1'; //имя базы данных 
    //const DBLOGIN = 'root'; //логин базы данных 
    //const DBPASS = 'aq798803'; //пароль базы данных 

    const MINIMUM_PHP = '5.1.0'; 

    private function check_version() { 

     if(version_compare(PHP_VERSION, self::MINIMUM_PHP, '<')) { 

      return 'На вашем сервере должна быть установлена версия PHP ' . self::MINIMUM_PHP . ' или выше для работы с коннектором PDO!'; 

     } 

    } 

    public static function transaction($query = null, $op_type) { 

     self::check_version(); 

     try { 
      $dbh = new PDO('mysql:dbname='.connect_data::$db, connect_data::$username, connect_data::$password, array(PDO :: ATTR_PERSISTENT => true)); 
     } 

그리고 나는 "PDO를 사용하는"시도하는 오류가 -

경고 : 내 코드는 여기가 아닌 화합물 이름 'PDO'와 함께 사용하는 문은 bla-에 영향 이 없습니다 라인 즐/testpdo.php 3

경고 :으로 session_start은() : 세션 캐시 리미터를 보낼 수 없습니다 - 헤더가 이미 전송 (출력 라인/config.php를 즐 - 즐에서 시작 2

또한 \ PDO와 같은 것을 작성하려고하지만 작동하지 않습니다. 나는 또한이

extension_dir = "/usr/local/lib/php/extensions/no-debug-non-zts-20100525" 
extension = "xcache.so" 
extension = "pdo.so" 
extension = "pdo_sqlite.so" 
extension = "imagick.so" 
extension = "pdo_mysql.so" 

같이 php.ini 파일을 통해 PDO로드하려고했다 그러나 그것은 또한 작동하지 않는, 그래서은 phpinfo cheked, 그것은 PDO와 확인 evething 것 같습니다.

+0

'PDO 사용'이 필요하지 않습니다. 자동으로 포함됩니다. – aynber

+0

실제로이 스크립트에서'use PDO'가 보이지 않습니다 ..?! – CD001

+0

testpdo.php의 3 번 줄에는 무엇이 있습니까? ? 내가 "클래스의 CONNECT_DATA" – Bert

답변

0

예, 질문이 끝났습니다. php.ini 파일에 문제가있었습니다. 제거되어 모든 것이 정상적으로 작동합니다. 이유는 모르지만 내 호스팅에서는이 작업에 대해 파일로 알립니다.

관련 문제