On Aug 2, 2007, at 12:03 PM, Nathan Nobbe wrote:
can you supply an error or warning that php is giving ?
it would help to determine the problem.
How would I go about that? I just took a quick look at the try/catch
documentation and it looks like it's my responsibility to throw
exceptions which isn't particularly useful if it's PHP itself that is
doing something unexpected....
http://www.php.net/manual/en/language.exceptions.php
-nathan
On 8/2/07, Ken Tozier <kentozier@xxxxxxxxxxx> wrote: Hi
I've been writing PHP classes for around two years now but all of a
sudden, the things I used to do don't work any more. I have a class
that implements utility functions for database calls using PDO and am
finding that I can't call one utility function from within another.
If each function is called by itself from a script, they work
perfectly. This is really basic stuff so I'm very puzzled why it
isn't working. The only difference between these new classes and my
old classes is the use of PDO. Could PDO be causing all these
headaches?
Anyone see where I'm screwing up?
Thanks in advance
Ken
Here's the '__construct' function of the included 'MySQLDatabase'
class
function __construct($inDomain, $inUser, $inPassword, $inDBName)
{
try
{
$this->db = new PDO('mysql:host='.
$inDomain.';dbname='.$inDBName,
$inUser, $inPassword);
// set error reporting
$this->db->setAttribute(PDO::ATTR_ERRMODE,
PDO::ERRMODE_EXCEPTION);
}
catch (PDOException $e)
{
print "Error!: " . $e->getMessage() . "<br/>";
die();
}
}
Here's the utility class so far
<?php
// MySQLDatabase is a DB access class that handles a bunch
of stuff
like pulling values out of a query
// value coersion etc. I've tested this for the last day or
so and
it seems to be stable.
include_once('MySQLDatabase.php');
class PMXUtilities
{
private $db;
function __construct()
{
$domain = 'localhost';
$user = 'root';
$password = '';
$db_name = 'pagemanager';
$this->db = new MySQLDatabase
($domain, $user, $password, $db_name);
}
// if this is called on its own, it works
function site_for_pub($inPubID)
{
$query = 'select
site.id, site.site_name from site, publication
where publication.id='.$inPubID.' and publication.site=site.id';
$coersions = array
('id'=> 'integer');
$args = array
('query'=> $query, 'coersions'=> $coersions);
$queryResult = $this->db-
>query_database($args);
if (count($queryResult) > 0)
return $queryResult[0]['id'];
else
return 'Error:
PMXUtilities.site_for_pub_id failed while fetching
site info for publication:'.$inPubID;
}
/ if this is called on its own, it works
function directory_type_id_for_name($inName)
{
$query = 'select
id from directory_type where name="'.$inName.'"';
$coersions = array
('id'=> 'integer');
$args = array
('query'=> $query, 'coersions'=> $coersions);
$queryResult = $this->db-
>query_database($args);
if (count($queryResult) > 0)
return $queryResult[0]['id'];
else
return 'Error:
PMXUtilities.site_for_pub_id failed while fetching
directory type id for directory:'.$inName;
}
// this function never gets past the first "echo"
function directory_path_for_pub_id($inPubID,
$inDirType)
{
echo 'entered: directory_path_for_pub_id';
// seems to die on next line as the 'echo
site' line never prints
$site = $this-
>site_for_pub_id($inPubID);
echo 'site: '.$site.'<br>';
/*
$dirTypeID = $this-
>directory_type_id_for_name($inDirType);
echo 'dir_type: '.$dirTypeID.'<br>';
$query = "select
server.server_name, directory.path from
directory, server, site where directory.type=".$dirTypeID." and
directory.server=server.id and server.site=site.id and site.id=".
$site;
echo $query.'<br>';
$queryResult = $this->db->query_database
($query);
return $queryResult[0]->server_name.
$queryResult[0]->path;
*/
}
}
?>
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php