2012-01-05 10 views
5

私はウェブ上で多くの研究をしましたが、私はcodeigniterでPDOを使用するのに役立つものは何も見つかりませんでした。私は、pdoドライバがフレームワークに追加されたCI 2.1.0(私は思う)の変更点を見ました。 私はこのようになりますdatabase.phpで設定ファイルに今なってしまった。だから今(上記のスニペットは-.-を動作させるために無駄に多くの時間後に)私は、接続に関するエラーを受け取っていないCodeigniter PDO integration

$db['default']['hostname'] = 'mysql:host=myhostname;port=myport'; 
$db['default']['username'] = 'myusername'; 
$db['default']['password'] = 'mypassword'; 
$db['default']['database'] = 'mydb'; 
$db['default']['dbdriver'] = 'pdo'; 

今すぐクエリを実行するにはどうすればよいですか?私はどの構文がうまくいくのか、そしてどのようにクエリを構築するのか分かりません。誰でもヒントがありますか?

PS:私は、CIにPDOを必要とする理由についてworderingしている場合、答えは私の上司は私がして、構造的環境を作成したいです:

  1. CI 2.xの+(行われる)
  2. あなたが持っている場合Smartyの3(行われる)
  3. のPHPUnit(まだ)
  4. PDOは(まだ)

ので、またのPHPUnitを統合するための任意のヒントはお答えすること自由に感じています。 Tyは事前に

答えて

7

CodeIgniterで他のデータベースドライバと同じ方法でPDOを使用します。まだわからない場合は、Database Classの文書を読むことをお勧めします。

明示的にクエリを記述することで標準クエリを発行することも、Active Record Class(クエリビルダーの多く)を使用することもできます。

は、ここではいくつかの例を示します、PHPUnitの統合については

// Standard query 
$results = $this->db->query('SELECT name, title, email FROM my_table'); 

// Active record 
$this->db->select('name, title, email'); 
$results = $this->db->get('my_table'); 

https://github.com/cmillr/CI-PHPUnitを見て(私はそれを自分でテストしていない)、またはCodeIgniter forumsを見て回ります。 PHPUnitとCodeIgniterの統合に関する話題を数多く見てきました。

+0

PHPUnitのヒントのために本当にTY !!!!あなたは私をたくさん助けてくれました。私はphpunitのために何かを探して時間を失ってしまったのですが、私は古いci図書館などしか見つけませんでした... pdo u rightについて、なぜか家ではうまくいきませんが、 >クエリまたはARが動作するように見える、私は深く調査する必要があります。しかし、もう一度XD – th3n3rd

+1

私はxdebugを使って、アクティブなレコードやクエリメソッドの両方を呼び出すときにCIが何をするのかを追跡します。両方の状況では、CIは "pdo"文を使用しません。内部でpdo関数を使用してください!私はpdoを使用したいと思っています。なぜなら、それはクエリバインディングメソッド(codeigniterのようなものではありません)を持っているからです。 – th3n3rd

+0

これは非常に古いものですが、必ずクエリを準備してください。 http://ellislab.com/forums/viewthread/218455/ – RaGe10940

8

あなたの設定を少し変更する必要があります。私たちは、DSNではなく、ホスト名を使用

'dsn' => 'mysql:host=localhost;dbname=codeigniter', 
//'hostname' => 'localhost', 
'username' => 'codeigniter', 
'password' => 'codeigniter', 
'database' => 'codeigniter', 

注意してください。その後

、単にあなたの$this->db->を使用あなたはいつものように - PDOドライバは少し時代遅れPDOの方法に至るまで

を翻訳しますが、私はこれを書いたので、ここでは、明確な説明に&ドキュメントを欠いています - それは人々のために明確にするのに役立ちます願っています:

http://codebyjeff.com/blog/2013/03/codeigniter-with-pdo

+1

孤独なリンクは、それ自体無意味で**将来的にはターゲットリソースが生きていることが保証されていないため、貧しい答えとみなされます([faq#deletion]を参照)。 **。 [こちらがこちらの回答の必須部分を含めることが望ましい](http://meta.stackexchange.com/q/8259)、参照のためのリンクを提供する。 – j0k

+2

が&更新されました – jmadsen