My local ISP does not support ASP, so I learned PHP over the weekend and converted my ASP scripts to PHP. They work correctly on my IIS server on my laptop (PHP Version 4.1.1). When I installed them on the ISP (Apache Server - PHP 4.0.4pl1) I get:
Fatal Error: Cannot instantiate non-existing class: com in "Filename".php on line 46
Line 46 is :
$cnnUserData = new COM("ADODB.Connection");
Is COM Microsoft based or is there a Apache or PHP setup problem with the ISP?
What is the best alternative method to using COM?
I choose COM because I wanted to be able to access the database file (MS Access based) without having to set up a file DSN.
The error can be seen at:
http://www.hci.net/~ke4rcf/Swap_Pages/Swap_EquipList.php
The code follows. I know that it is not very pretty, but not bad for learning PHP in 24 hours.
<HEAD>
<META NAME="GENERATOR" Content="Microsoft FrontPage 4.0">
</HEAD>
<BODY>
<P align=center><FONT face=Arial size=6><STRONG>WPARC Swap Page</STRONG> </FONT></P>
<P> </P><FONT face=Arial>
<TABLE cellSpacing=1 cellPadding=1 width="75%" border=1>
<TR>
<TD> By Manufacturer </TD>
<TD><A href="Swap_Join.php">Join Swap Group</A></TD></TR>
<TR>
<TD> </TD>
<TD><A href="Swap_AddEquip.php">Add Your Swap Item</A> (Swap Group
Members Only)</TD></TR>
<TR>
<TD>By Owner</TD>
<TD><A href="Swap_MemberEquipUpd.php">Update Your Swap List</A> (Swap Group Members Only)</TD></TR>
<TR>
<TD></TD>
<TD></TD></TR></TABLE>
<P> </P>
<TABLE BORDER=4 BORDERCOLOR="black" BGCOLOR="lightgrey">
<TR>
<TD><FONT face=Arial>Manufacturer</FONT></TD>
<TD><FONT face=Arial>Model Number</FONT> </TD>
<TD><FONT face=Arial>Description</FONT></TD>
<TD><FONT face=Arial>Price</FONT></TD>
<TD><FONT face=Arial>Add Date</FONT> </TD>
<TD><FONT face=Arial>Owner</FONT></TD>
<TD><FONT face=Arial>Location</FONT></TD>
<TD><FONT face=Arial>Email</FONT></TD>
<TD><FONT face=Arial>Phone Number</FONT> </TD>
</TR>
<?
$A = $PATH_TRANSLATED;
$B = strrev ($A);
$C = strstr ($B,'\');
$AccessDbPath = strrev ($C);
$cnnUserData = new COM("ADODB.Connection");
$cnnUserData->Provider = "MSDASQL";
$cnnUserData->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=$AccessDbPath\WPARC_Web.mdb;Jet OLEDB:Database Password=XXXXXX;");
$rstEquipment = $cnnUserData->Execute ("Select * from SwapTable");
while (!$rstEquipment->EOF) {
Print "<TR>";
Print "<TD>" . $rstEquipment->Fields["Manufacturer"]->Value . " </TD>";
Print "<TD>" . $rstEquipment->Fields["ModelNumber"]->Value . " </TD>";
Print "<TD>" . $rstEquipment->Fields["Description"]->Value . " </TD>";
Print "<TD>" . $rstEquipment->Fields["AskingPrice"]->Value . " </TD>";
Print "<TD>" . date("M/d/Y",$rstEquipment->Fields["DateAddStart"]->Value) . " </TD>";
$rstOwnerList = $cnnUserData->Execute ("Select * from OwnerInfo where OwnerID = " . $rstEquipment->Fields["OwnerID"]->Value . ";");
if (!$rstOwnerList->EOF) {
Print "<TD>" . $rstOwnerList->Fields["First_Name"]->Value . " " . $rstOwnerList->Fields["Last_Name"]->Value . "</TD>";
if ($rstOwnerList->Fields["GiveOutAddress"]->Value == "Yes") {
Print "<TD>" . $rstOwnerList->Fields["City"]->Value . ", " . $rstOwnerList->Fields["State"]->Value . "</TD>";
} else {
Print "<TD> </TD>";
}
if ($rstOwnerList->Fields["GiveOutEmail"]->Value == "Yes") {
Print "<TD><A href=mailto:" . $rstOwnerList->Fields["EmailAddress"]->Value . ">" . $rstOwnerList->Fields["EmailAddress"]->Value . "</A></TD>";
} else {
Print "<TD> </TD>";
}
if ($rstOwnerList->Fields["GiveOutPhoneNum"]->Value == "Yes") {
Print "<TD>" . $rstOwnerList->Fields["PhoneNumber"]->Value . "</TD>";
} else {
Print "<TD> </TD>";
}
}
$rstOwnerList->Close;
Print "</TR>";
$rstEquipment->MoveNext();
}
$rstEquipment->Close;
?>
</TABLE>
<P><FONT face=Arial></FONT> </P><FONT face=Arial>
<TABLE cellSpacing=1 cellPadding=1 width="75%" border=1>
<TR>
<TD> By Manufacturer </TD>
<TD><A href="Swap_Join.php">Join Swap Group</A></TD></TR>
<TR>
<TD> </TD>
<TD><A href="Swap_AddEquip.php">Add Your Swap Item</A> (Swap Group
Members Only)</TD></TR>
<TR>
<TD>By Owner </TD>
<TD><A href="Swap_MemberEquipUpd.php">Update Your Swap List</A> (Swap Group Members Only)</TD></TR>
<TR>
<TD></TD>
<TD></TD></TR></TABLE>
<P> </P>
<P></FONT> </P></FONT>
<?
Print "The current server date / time is " . date("m/d/Y H:i:s") . "<BR>";
phpinfo();
?>
</BODY>