PHPLIB writes cookies. A print statement in the middle of PHPLIB may
produce error messages about problems writing HTTP headers. Ignore the
errors or write the diagnostic messages to a disk file. Start with:
produce error messages about problems writing HTTP headers. Ignore the
errors or write the diagnostic messages to a disk file. Start with:
$db_log_file = "t:/diag.txt";
…or similar. Point to a text file somewhere on your disk. In Windows, make
sure you use a directory that exists or you will get a weird error.
sure you use a directory that exists or you will get a weird error.
Now define:
<?php
function db_log($db_log_message) {
globals $db_log_file;
$db_log_f = fopen($db_log_file, "a");
fwrite($db_log_f, date("Y m d H:i:s")." ".$db_log_message."rn");
fclose($db_log_f);
}
?>
Anytime you need to see what is happening, add log messages like:
<?php
db_log
("current database: " . db_database());
?>
There are some built in logging techniques and system logs you can use. You
may not have access to the right directories and may have to search large
files to find a tiny piece of information. This separate log gives you some
control during testing. I recommend it before and after logs like:
may not have access to the right directories and may have to search large
files to find a tiny piece of information. This separate log gives you some
control during testing. I recommend it before and after logs like:
<?php
db_log
("current database: " . db_database());
db_database("bookcatalogue");
db_log("current database: " . db_database());
?>
Remember to use the right database in your database accesses so you do not
query the PHPLIB database. You might like to create a wrapper function for
the database query function or change the function you use. If you use
mysql_query(), you can use db_database() first. You can also replace:
query the PHPLIB database. You might like to create a wrapper function for
the database query function or change the function you use. If you use
mysql_query(), you can use db_database() first. You can also replace:
<?php
db_database
("bookcatalogue");
$result = mysql_query("select * from?", db_connect());
?>
with
<?php
$result
= mysql_db_query(db_database("bookcatalogue"), "select * from?",
db_connect());
?>
which suggests the function:
<?php
function db_query($db_query_database, $db_query_sql) {
return(mysql_db_query(db_database($db_query_database), $db_query_sql,
db_connect());
}
?>
Now you can
- use PHPLIB (and any similar software) with multiple databases
- extend classes/objects
- insert diagnostic checks
- write a log of anything to a file
Practice them in reverse order. Get the log file working, then the
diagnostic check, then one class extension and then go wild.
diagnostic check, then one class extension and then go wild.
Happy coding!
— Peter
— Peter