zf model db connection

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Nick van der heijden

nick van der heijden

19/10/2012 19:51:04
Quote Anchor link
Goededag,

zover ik weet klopt het gewoon maar ik krijg een FATAL ERROR class Zend_Db_Adapter_Pdo_Mysql
not found in line:


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php

class Db_db{
     public static function conn(){
        $connParams =(array("host"=>"localhost","username"=>"root","password"=>"password"));
        
    $db = new Zend_Db_Adapter_Pdo_Mysql($connParams);
    return $db;
    }
}

?>


ik weet niet wat er fout gaat?

gr
nick


 
Gewijzigd op 19/10/2012 19:51:32 door Nick van der heijden
 
PHP hulp

PHP hulp

19/02/2025 02:14:06
 
Reshad F

Reshad F

19/10/2012 20:07:09
Quote Anchor link
ik heb niet veel verstand van ZEND maar hoe hoe roep je dit aan in je controller?

zie hier voor uitgebreide uitleg en voorbeeldjes; http://framework.zend.com/manual/1.12/en/zend.db.adapter.html
Gewijzigd op 19/10/2012 20:10:05 door Reshad F
 
Nick van der heijden

nick van der heijden

19/10/2012 20:11:29
Quote Anchor link
ik roep die aan zo

Require 'Db_db.php';

$db=Db_db::conn();
 
Kees Schepers

kees Schepers

19/10/2012 20:20:37
Quote Anchor link
Lijkt erop dat je je autoloader niet goed geconfigureerd hebt. Volgens mij zet je die aan met:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
Zend_Loader_Autoloader::getInstance();
?>


Je moet dan wel de autoloader includen uiteraard. En je include_path goed zetten.

Maar eigenlijk hoort dit automatisch te gebeuren als je een Zend Framework applicatie ontwikkeld.
 
Nick van der heijden

nick van der heijden

19/10/2012 20:22:22
Quote Anchor link
ja dat heb ik in me index.php die in me public folder staat

require_once'Zend/Loader/Autoloader.php';
Zend_Loader_Autoloader::getInstance();
 
Niels K

Niels K

19/10/2012 20:23:08
Quote Anchor link
Maak je een applicatie geheel op basis van Zend of gebruik je alleen de DB functionaliteit?
 
Nick van der heijden

nick van der heijden

19/10/2012 20:25:42
Quote Anchor link
ik gebruik hele applicatie Zend Framework
 
Niels K

Niels K

19/10/2012 20:27:40
Quote Anchor link
Dan vraag ik mij af waarom je überhaupt deze class hebt. Je kan toch van de normale DB functionaliteit gebruik maken?
 
Nick van der heijden

nick van der heijden

19/10/2012 20:30:03
Quote Anchor link
hoe bedoel je ik ben het aan het leren :) gewoon in de controller zelf ?
 
Niels K

Niels K

19/10/2012 20:40:17
Quote Anchor link
Dat maakt niet uit ;-) Ik probeer je met wat vragen / antwoorden de goede richting op de sturen.

Maak je gebruik van ZF 1 of 2? Ik raad je namelijk aan om even de quickstart te volgen. Die vertelt je alles omtrent het (juist) gebruik van een Zend Framework applicatie.
 
Nick van der heijden

nick van der heijden

19/10/2012 20:43:29
Quote Anchor link
ik ben nu bezig met zf 1 als ik dat redelijk snap wil ik naar 2
,weet dat ik dat beter kan doen maar wil eerst 1 en daarna 2 :)
Gewijzigd op 19/10/2012 20:44:25 door nick van der heijden
 
Niels K

Niels K

19/10/2012 20:52:28
Quote Anchor link
Zeker. Ik geef je de tip om even de quick start goed door te nemen.

Daarnaast zou je ook eens kunnen kijken op de blog van Rob Allen. Waardevolle posts!!
 
Nick van der heijden

nick van der heijden

19/10/2012 20:54:04
Quote Anchor link
jaa indd die quick start heb ik al keer door gelezen en gedaan.

Ik heb een boek er van die heet

Beginning Zend Framework maarja ik snap niet waarom ie zegt dat ie die class niet kan vinden ik snap het wel hoe het zit en zo maar alleen dit snap ik niet xd

Toevoeging op 19/10/2012 20:58:08:

ik heb in de

index.php
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
set_include_path(implode(PATH_SEPARATOR, array(
    realpath(APPLICATION_PATH . '/../library'),
    get_include_path(),
)).";".realpath(APPLICATION_PATH.'/models'));

/** Zend_Application */
require_once 'Zend/Application.php';
require_once'Zend/Loader/Autoloader.php';
Zend_Loader_Autoloader::getInstance();


en in de controller heb ik dit

public function newAction()
{
require('Db.php');
$db=Db_db::conn();

}


en die Db.php staat in models

eb daar staat dit in

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php

class Db_db{
     public static function conn(){
        $connParams =(array("host"=>"localhost","username"=>"root","password"=>"password"));
        
    $db = new Zend_Db_Adapter_Pdo_Mysql($connParams);
    return $db;
    }
}

?>
 
Niels K

Niels K

19/10/2012 21:01:10
Quote Anchor link
Waar ik op doel is dat je deze klasse helemaal niet nodig hebt.

Wanneer je de application.ini op de juiste manier instelt moet het al werken.

Zie ook deze uitleg: http://framework.zend.com/manual/1.12/en/learning.quickstart.create-model.html
 
Nick van der heijden

nick van der heijden

19/10/2012 21:04:58
Quote Anchor link
ja oke maar waar maken ze daar connection met database of ben ik nu echt zo dom ?
dat ik het niet zie
 
Niels K

Niels K

19/10/2012 21:07:21
Quote Anchor link
Niemand is dom ;-)

Zend werkt op basis van resources. De resources definieer je in je application ini. De bootstrap van het Zend framework leest je application.ini in en initialiseert dan je database en de overige settings / resources.
 
Nick van der heijden

nick van der heijden

19/10/2012 21:10:04
Quote Anchor link
oooh oke dus dan word het iets van

resources.db.adapter = "PDO_MYSQL"
resources.db.params.host = "localhost"
resources.db.params.username = "username"
resources.db.params.password = "password"
resources.db.params.dbname = "zf"

in me application.ini

en dan moet het werken als het goed is ,en in de controller zet je dan sql querys ?
 
Niels K

Niels K

19/10/2012 21:22:05
Quote Anchor link
Voorbeeld van mijn application.ini (alleen even de database gepakt)

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
resources.db.adapter                = PDO_MYSQL
resources.db.profiler                = true
resources.db.params.host            = localhost
resources.db.params.dbname            = database
resources.db.params.username            = username
resources.db.params.password            = password
resources.db.isDefaultTableAdapter        = true


Je kan als je wilt de resource uitbreiden met drivers options. (names, timezone, etc)

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
resources.db.params.driver_options.1002    = "SET NAMES utf8"


Je kan eventueel je meta data cachen (Met APC bijvoorbeeld). Zorg dan wel dat je een cache manager resource hebt. (Google even)

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
resources.db.defaultMetadataCache        = "database"


Wanneer Zend je applicatie runt hebt je een database connectie.

Heb je wel eens gehoord van het Zend Db Table principe?
 
Nick van der heijden

nick van der heijden

19/10/2012 21:28:37
Quote Anchor link
Nee eigenlijk nog nooit van gehoort dusja beetje uitleg over dingen enzo zal wel relax zijn

Toevoeging op 19/10/2012 21:37:24:

Ff opgezcht weet nu ongeveer waar zend db table over gaat :)

$table = new Bugs();

$data = array(
'created_on' => '2007-03-22',
'bug_description' => 'Something wrong',
'bug_status' => 'NEW'
);

$table->insert($data);

Begin het ongeveer tesnappen
 
Niels K

Niels K

19/10/2012 21:38:08
Quote Anchor link
Ik raad je aan om dit eens te lezen en daarna eens terug te komen en vertellen wat je bevindingen zijn ;-)
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.