Autor | Zpráva | ||
---|---|---|---|
Zlomenina Profil |
#1 · Zasláno: 20. 10. 2005, 09:15:06
Resim databasovou aplikaci. Protoze mam malo zkusenosti, napred ji chci resit pomoci PHP - ODBC - MySQL, pozdeji pro zvyseni vykonu PHP - ODBC - ORACLE. Nakonec to bude jeste trosku komplikovanejsi, ale to ted neni podstatne. Pouzivam PHP 5.0.4, MySQL ODBC 3.5.1 driver, MySQL-4.0.24-win.
Napred se spojim s ODBC, pomoci funkce odbc_connect( $DNS, $User, $Password ) - to je vse OK Potom chci poslat SQL dotaz pomoci funkce odbc_exec( $Connect_ID, $Query ) - a tady je problem. Prestoze $Connect_ID ziskam ze zadosti o spojeni, tak pri volani a vykonavani funkce odbc_exec mi php hodi tuhle hlasku: Warning: odbc_exec(): 4 is not a valid ODBC-Link resource in C:\Program Files\Apache Group\Apache2\htdocs\windros\myODBC.inc on line 40 V myODBC.inc mam definovanou vlastni tridu - interface pro komunikaci mezi PHP a ODBC, zde se taky provadi funkce odbc_exec. Napada Vas neco, uz sem to resil vcera cely den. A jedine co me napada je, ze mam spatny interpreter PHP. Ale treba je to nekde jinde. Pouzivam pravidla OOP s PHP 5, tak mozna zkusit nejakou vyssi verzi, nevim. Ale moc se mi do toho nechce... |
||
Zlomenina Profil |
#2 · Zasláno: 21. 10. 2005, 08:22:55
Vypada to na problem se vkladanim souboru pomoci include(). Zkousel jsem i include_once, require, require_once ... to vsak problem neresi. Tak testuju dal. Je to docela zahada.
|
||
ronnie Profil |
#3 · Zasláno: 21. 10. 2005, 09:07:18
Pokud tomu dobře rozumím, hláška hazí chybu, že funkce odbc_exec nedostává správný parametr ($Connect_ID), určitě jsi připojen k databázi? Resp. echo odbc_connect( $DNS, $User, $Password ) vypíše to, co má?
|
||
Zlomenina Profil |
#4 · Zasláno: 21. 10. 2005, 09:26:19
No echo vypise 'Resource ID #6', coz je podle me spravne. Tohle si ulozim do promenne $Connect_ID.
|
||
Zlomenina Profil |
#5 · Zasláno: 21. 10. 2005, 09:26:50
Tady je muj vytvor
define ( 'PERSISTANT', true ); interface communication1to3 { public function getAnswer ( &$Query ); public function getNumberOfConnect(); public function getTimeOfConnect(); } class communicationMyODBC implements communication1to3 { private $Token; private $TimeOfConnect; private static $NumberOfConnect; public function __construct ( &$DSN, &$User, &$Password ) { switch ( PERSISTANT ) { case true : if ( !$this->Token = odbc_pconnect( $DSN, $User, $Password ) ){ $MSG = odbc_errormsg(); die( $MSG ); } echo "Tohle je connect > ".$this->Token." \n"; break; case false : if ( !$this->Token = odbc_connect( $DSN, $User, $Password ) ){ $MSG = odbc_errormsg(); die( $MSG ); } echo "Tohle je connect > ".$this->Token." \n"; break; } list( $msec, $sec ) = explode( " ", microtime() ); $this->TimeOfConnect = array( 'sec'=>(int)$sec, 'msec'=>(float)$msec ); ++self::$NumberOfConnect; } public function __destruct() { odbc_close( $this->Token ); } public function getAnswer ( &$query ) { if ( !$Answer = odbc_exec( $this->Token, $query ) ){ $MSG = odbc_errormsg(); die( $MSG ); } return $Answer; } public function getNumberOfConnect () { return self::$NumberOfConnect; } public function getTimeOfConnect () { list( $msec, $sec ) = explode( " ", microtime() ); $sec -= $this->TimeOfConnect['sec']; $msec -= $this->TimeOfConnect['msec']; $Time = array ( 'sec' => $sec, 'msec' => $msec ); return $Time; } } |
||
Zlomenina Profil |
#6 · Zasláno: 21. 10. 2005, 09:29:07
Je to v souboru myODBC.inc a ten vkladam do index.php na zacatku a pozdeji vytvarim instanci tehle tridy a volam jeji funkce
|
||
Zlomenina Profil |
#7 · Zasláno: 21. 10. 2005, 14:00:00
index.php vypada treba nejak takhle
<?php include("myODBC.inc"); $DSN = "Database MySQL"; $User = "blabla"; $Password = "blabla"; $IF_AppDB = new communicationMyODBC( $DSN, $User, $Password ); $Query = "SELECT * FROM coordinates_system"; $Answer = $IF_AppDB->getAnswer( $Query ); if ( $Answer ) odbc_result_all( $Answer ); ?> |
||
Časová prodleva: 3 dny
|
|||
Zlomenina Profil |
#8 · Zasláno: 24. 10. 2005, 09:45:42
Pokud nekomu neni problem jasny, prosim, ptejte se. Diky
|
||
Časová prodleva: 18 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0