<div>Dear sunkara,</div>  <div>&nbsp;</div>  <div>Thank you very much for your kind-hearted for answering my question, Thank you very much.</div>  <div>If I can ask you more, would you mind tell me what is the name the application that I can use like&nbsp;"serweb" in&nbsp;openser server ?&nbsp;(the suitable "serweb" for openser server)&nbsp;because I am building openser server. and would you mind tell me where I can get it? </div>  <div>Please help me, Sunkara..Please...Please...</div>  <div>Thank you very much...Thank you...</div>  <div>&nbsp;</div>  <div>Regards,</div>  <div>&nbsp;</div>  <div>Ferianto<BR><BR><B><I>raviprakash sunkara &lt;sunkara.raviprakash.feb14@gmail.com&gt;</I></B> wrote:</div>  <BLOCKQUOTE class=replbq style="PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #1010ff 2px solid">Hi siregar...<BR>I best Suggest is Not to user SERweb in openser.<BR>It application to SER only. not For openser , if U want to configure the serweb in openser U need to modify
 some changes in serweb and&nbsp; openser tables&nbsp; other things.. <BR>Perhaps try it..... <BR>Best of luck...<BR><BR><BR>  <DIV><SPAN class=gmail_quote>On 8/19/06, <B class=gmail_sendername>Ferianto siregar</B> &lt;<A href="mailto:ferianto_voip@yahoo.com">ferianto_voip@yahoo.com</A>&gt; wrote: </SPAN>  <BLOCKQUOTE class=gmail_quote style="PADDING-LEFT: 1ex; MARGIN: 0pt 0pt 0pt 0.8ex; BORDER-LEFT: rgb(204,204,204) 1px solid">  <DIV>Dear all,<BR><BR>Thanks to all of you for your kind-hearted answering my question. Thank you very much. <BR>Now, I am building serweb in openser. So, the client can register to become the member of communication in my openser that I have built.<BR>1. Can "serweb" (from <A onclick="return top.js.OpenExtLink(window,event,this)" href="http://iptel.org/" target=_blank>iptel.org</A>) be used in openser server for building the webserver of the openser server? Or openser has it`s own webserver except "serweb"?<BR>2.When I build serweb (from <A
 onclick="return top.js.OpenExtLink(window,event,this)" href="http://iptel.org/" target=_blank>iptel.org</A>), I have some problems. I do hope anybody can help me and give me a suggestion. Please..<BR>The error message that I got from client browser is<BR>  <DIV><B>Fatal error</B>: Failed opening required 'var/www/phplib/db_mysql.inc' (include_path='.:/usr/share/pear') in <B>/var/www/html/serweb/user_interface/prepend.php</B> on line <B>23</B></DIV>  <DIV><SPAN><SPAN style="FONT-WEIGHT: bold">The contain of prepend.php that shows line 23 is </SPAN><BR></SPAN></DIV>  <DIV><SPAN></SPAN>require($_PHPLIB["libdir"] . "db_mysql.inc"); <SPAN>&nbsp; </SPAN>/* Change this to match your database. */</DIV>  <DIV><SPAN style="FONT-SIZE: 12pt">I don`t know what is wrong. I do hope anybody can give me a suggestion. Please help me..Please. Thanks</SPAN></DIV>  <DIV><SPAN style="FONT-SIZE: 12pt">Regards,</SPAN></DIV>  <DIV><BR><SPAN style="FONT-SIZE: 12pt"></SPAN></DIV>  <DIV><SPAN
 style="FONT-SIZE: 12pt">Ferianto<BR></SPAN></DIV>  <DIV><SPAN style="FONT-SIZE: 12pt">Note:<BR></SPAN></DIV>  <DIV><SPAN style="FONT-SIZE: 12pt">This is the contain of db_mysql.inc that I have configured <BR></SPAN></DIV>  <DIV></DIV>  <DIV>&lt;?php</DIV>  <DIV>/*</DIV>  <DIV><SPAN>&nbsp;</SPAN>* Session Management for PHP3</DIV>  <DIV><SPAN>&nbsp;</SPAN>*</DIV>  <DIV><SPAN>&nbsp;</SPAN>* Copyright (c) 1998-2000 NetUSE AG </DIV>  <DIV><SPAN>&nbsp;</SPAN>*<SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>Boris Erdmann, Kristian Koehntopp</DIV>  <DIV><SPAN>&nbsp;</SPAN>*</DIV>  <DIV><SPAN>&nbsp;</SPAN>* $Id: db_mysql.inc,v <A onclick="return top.js.OpenExtLink(window,event,this)" href="http://1.1.1.1/" target=_blank>1.1.1.1</A> 2002/09/04 18:19:57 kozlik Exp $</DIV>  <DIV><SPAN>&nbsp;</SPAN>*</DIV>  <DIV><SPAN>&nbsp;</SPAN>*/ </DIV>  <DIV>&nbsp;</DIV>  <DIV>class DB_Sql {</DIV>  <DIV><SPAN>&nbsp;
 </SPAN></DIV>  <DIV><SPAN>&nbsp; </SPAN>/* public: connection parameters */ </DIV>  <DIV><SPAN>&nbsp; </SPAN>var $Host<SPAN>&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>= "localhost";</DIV>  <DIV><SPAN>&nbsp; </SPAN>var $Database = "openser";</DIV>  <DIV><SPAN>&nbsp; </SPAN>var $User<SPAN>&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>= "openser";</DIV>  <DIV><SPAN>&nbsp; </SPAN>var $Password = "openserrw";</DIV>  <DIV>&nbsp;</DIV>  <DIV><SPAN>&nbsp; </SPAN>/* public: configuration parameters */</DIV>  <DIV><SPAN>&nbsp; </SPAN>var $Auto_Free<SPAN>&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>= 0;<SPAN>&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>## Set to 1 for automatic mysql_free_result()</DIV>  <DIV><SPAN>&nbsp; </SPAN>var $Debug<SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>= 0;<SPAN>&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>## Set to 1 for debugging messages. </DIV>  <DIV><SPAN>&nbsp; </SPAN>var $Halt_On_Error = "yes"; ## "yes" (halt with message), "no" (ignore errors quietly), "report" (ignore errror, but spit a
 warning)</DIV>  <DIV><SPAN>&nbsp; </SPAN>var $Seq_Table<SPAN>&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>= "db_sequence";</DIV>  <DIV>&nbsp;</DIV>  <DIV><SPAN>&nbsp; </SPAN>/* public: result array and current row number */</DIV>  <DIV><SPAN>&nbsp; </SPAN>var $Record<SPAN>&nbsp;&nbsp; </SPAN>= array(); </DIV>  <DIV><SPAN>&nbsp; </SPAN>var $Row;</DIV>  <DIV>&nbsp;</DIV>  <DIV><SPAN>&nbsp; </SPAN>/* public: current error number and error text */</DIV>  <DIV><SPAN>&nbsp; </SPAN>var $Errno<SPAN>&nbsp;&nbsp;&nbsp; </SPAN>= 0;</DIV>  <DIV><SPAN>&nbsp; </SPAN>var $Error <SPAN>&nbsp;&nbsp;&nbsp; </SPAN>= "";</DIV>  <DIV>&nbsp;</DIV>  <DIV><SPAN>&nbsp; </SPAN>/* public: this is an api revision, not a CVS revision. */</DIV>  <DIV><SPAN>&nbsp; </SPAN>var $type<SPAN>&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>= "mysql";</DIV>  <DIV><SPAN>&nbsp; </SPAN>var $revision = "1.2";</DIV>  <DIV>&nbsp;</DIV>  <DIV><SPAN>&nbsp; </SPAN>/* private: link and query handles */</DIV>  <DIV><SPAN>&nbsp; </SPAN>var
 $Link_ID<SPAN>&nbsp; </SPAN>= 0;</DIV>  <DIV><SPAN>&nbsp; </SPAN>var $Query_ID = 0; </DIV>  <DIV><SPAN>&nbsp; </SPAN></DIV>  <DIV>&nbsp;</DIV>  <DIV>&nbsp;</DIV>  <DIV><SPAN>&nbsp; </SPAN>/* public: constructor */</DIV>  <DIV><SPAN>&nbsp; </SPAN>function DB_Sql($query = "") {</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>$this-&gt;query($query); </DIV>  <DIV><SPAN>&nbsp; </SPAN>}</DIV>  <DIV>&nbsp;</DIV>  <DIV><SPAN>&nbsp; </SPAN>/* public: some trivial reporting */</DIV>  <DIV><SPAN>&nbsp; </SPAN>function link_id() {</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>return $this-&gt;Link_ID;</DIV>  <DIV><SPAN>&nbsp; </SPAN>}</DIV>  <DIV>&nbsp;</DIV>  <DIV><SPAN>&nbsp; </SPAN>function query_id() {</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>return $this-&gt;Query_ID;</DIV>  <DIV><SPAN>&nbsp; </SPAN>}</DIV>  <DIV>&nbsp;</DIV>  <DIV><SPAN>&nbsp; </SPAN>/* public: connection management */</DIV>  <DIV><SPAN>&nbsp; </SPAN>function connect($Database = "", $Host = "", $User =
 "", $Password = "") {</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>/* Handle defaults */ </DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>if ("" == $Database)</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>$Database = $this-&gt;Database;</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>if ("" == $Host)</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>$Host<SPAN> &nbsp;&nbsp;&nbsp;&nbsp; </SPAN>= $this-&gt;Host;</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>if ("" == $User)</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>$User<SPAN>&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>= $this-&gt;User;</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>if ("" == $Password)</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>$Password = $this-&gt;Password;</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>/* establish connection, select database */ </DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>if ( 0 == $this-&gt;Link_ID ) {</DIV> 
 <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN></DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>$this-&gt;Link_ID=mysql_pconnect($Host, $User, $Password);</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>if (!$this-&gt;Link_ID) { </DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>$this-&gt;halt("pconnect($Host, $User, \$Password) failed.");</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>return 0;</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>}</DIV>  <DIV>&nbsp;</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>if (!@mysql_select_db($Database,$this-&gt;Link_ID)) { </DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>$this-&gt;halt("cannot use database ".$Database);</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>return 0;</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>}</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>}</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN></DIV> 
 <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>return $this-&gt;Link_ID;</DIV>  <DIV><SPAN>&nbsp; </SPAN>}</DIV>  <DIV>&nbsp;</DIV>  <DIV><SPAN>&nbsp; </SPAN>/* public: discard the query result */</DIV>  <DIV><SPAN>&nbsp; </SPAN>function free() {</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>@mysql_free_result($this-&gt;Query_ID);</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>$this-&gt;Query_ID = 0;</DIV>  <DIV><SPAN>&nbsp; </SPAN>}</DIV>  <DIV>&nbsp;</DIV>  <DIV><SPAN>&nbsp; </SPAN>/* public: perform a query */</DIV>  <DIV><SPAN>&nbsp; </SPAN>function query($Query_String) {</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>/* No empty queries, please, since PHP4 chokes on them. */</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>if ($Query_String == "")</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>/* The empty query string is passed on from the constructor,</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>* when calling the class without a query,
 e.g. in situations</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>* like these: '$db = new DB_Sql_Subclass;' </DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>*/</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>return 0;</DIV>  <DIV>&nbsp;</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>if (!$this-&gt;connect()) {</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>return 0; /* we already complained in connect() about that. */ </DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>};</DIV>  <DIV>&nbsp;</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN># New query, discard previous result.</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>if ($this-&gt;Query_ID) {</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>$this-&gt;free();</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>}</DIV>  <DIV>&nbsp;</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>if ($this-&gt;Debug)</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>printf("Debug: query = %s&lt;br&gt;\n",
 $Query_String);</DIV>  <DIV>&nbsp;</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>$this-&gt;Query_ID = @mysql_query($Query_String,$this-&gt;Link_ID);</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>$this-&gt;Row<SPAN>&nbsp;&nbsp; </SPAN>= 0;</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>$this-&gt;Errno = mysql_errno();</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>$this-&gt;Error = mysql_error();</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>if (!$this-&gt;Query_ID) {</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>$this-&gt;halt("Invalid SQL: ".$Query_String);</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>}</DIV>  <DIV>&nbsp;</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN># Will return nada if it fails. That's fine.</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>return $this-&gt;Query_ID; </DIV>  <DIV><SPAN>&nbsp; </SPAN>}</DIV>  <DIV>&nbsp;</DIV>  <DIV><SPAN>&nbsp; </SPAN>/* public: walk result set */</DIV>  <DIV><SPAN>&nbsp; </SPAN>function next_record() {</DIV> 
 <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>if (!$this-&gt;Query_ID) {</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>$this-&gt;halt("next_record called with no query pending.");</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>return 0;</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>}</DIV>  <DIV>&nbsp;</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>$this-&gt;Record = @mysql_fetch_array($this-&gt;Query_ID); </DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>$this-&gt;Row<SPAN>&nbsp;&nbsp; </SPAN>+= 1;</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>$this-&gt;Errno<SPAN>&nbsp; </SPAN>= mysql_errno();</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>$this-&gt;Error<SPAN>&nbsp; </SPAN>= mysql_error();</DIV>  <DIV>&nbsp;</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>$stat = is_array($this-&gt;Record);</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>if (!$stat &amp;&amp; $this-&gt;Auto_Free) {</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>$this-&gt;free();</DIV> 
 <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>}</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>return $stat;</DIV>  <DIV><SPAN>&nbsp; </SPAN>}</DIV>  <DIV>&nbsp;</DIV>  <DIV><SPAN>&nbsp; </SPAN>/* public: position in result set */</DIV>  <DIV><SPAN>&nbsp; </SPAN>function seek($pos = 0) {</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>$status = @mysql_data_seek($this-&gt;Query_ID, $pos);</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>if ($status)</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>$this-&gt;Row = $pos;</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>else {</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>$this-&gt;halt("seek($pos) failed: result has ".$this-&gt;num_rows()." rows.");</DIV>  <DIV>&nbsp;</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>/* half assed attempt to save the day, </DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>* but do not consider this documented or even </DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>*
 desireable behaviour.</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>*/</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>@mysql_data_seek($this-&gt;Query_ID, $this-&gt;num_rows());</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>$this-&gt;Row = $this-&gt;num_rows(); </DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>return 0;</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>}</DIV>  <DIV>&nbsp;</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>return 1;</DIV>  <DIV><SPAN>&nbsp; </SPAN>}</DIV>  <DIV>&nbsp;</DIV>  <DIV><SPAN>&nbsp; </SPAN>/* public: table locking */ </DIV>  <DIV><SPAN>&nbsp; </SPAN>function lock($table, $mode = "write") {</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>$query = "lock tables ";</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>if (is_array($table)) {</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>while (list($key,$value) = each($table)) { </DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>if
 (!is_int($key)) {</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN>&nbsp; </SPAN>// texts key are "read", "read local", "write", "low priority write"</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>$query .= "$value $key, ";</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>} else {</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>$query .= "$value $mode, ";</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>}</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>}</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>$query = substr($query,0,-2);</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>} else {</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>$query .= "$table $mode";</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>}</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>$res = $this-&gt;query($query);</DIV> 
 <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>if (!$res) {</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>$this-&gt;halt("lock() failed.");</DIV>  <DIV><SPAN>&nbsp;</SPAN><SPAN>&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>return 0;</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>}</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>return $res;</DIV>  <DIV><SPAN>&nbsp; </SPAN>}</DIV>  <DIV><SPAN>&nbsp; </SPAN></DIV>  <DIV><SPAN>&nbsp; </SPAN>function unlock() {</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>$res = $this-&gt;query("unlock tables");</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>if (!$res) {</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>$this-&gt;halt("unlock() failed."); </DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>}</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>return $res;</DIV>  <DIV><SPAN>&nbsp; </SPAN>}</DIV>  <DIV>&nbsp;</DIV>  <DIV><SPAN>&nbsp; </SPAN>/* public: evaluate the result (size, width) */</DIV>  <DIV><SPAN>&nbsp; </SPAN>function affected_rows() {
 </DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>return @mysql_affected_rows($this-&gt;Link_ID);</DIV>  <DIV><SPAN>&nbsp; </SPAN>}</DIV>  <DIV>&nbsp;</DIV>  <DIV><SPAN>&nbsp; </SPAN>function num_rows() {</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>return @mysql_num_rows($this-&gt;Query_ID); </DIV>  <DIV><SPAN>&nbsp; </SPAN>}</DIV>  <DIV>&nbsp;</DIV>  <DIV><SPAN>&nbsp; </SPAN>function num_fields() {</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>return @mysql_num_fields($this-&gt;Query_ID);</DIV>  <DIV><SPAN>&nbsp; </SPAN>}</DIV>  <DIV>&nbsp;</DIV>  <DIV><SPAN>&nbsp; </SPAN>/* public: shorthand notation */</DIV>  <DIV><SPAN>&nbsp; </SPAN>function nf() {</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>return $this-&gt;num_rows();</DIV>  <DIV><SPAN>&nbsp; </SPAN>}</DIV>  <DIV>&nbsp;</DIV>  <DIV><SPAN>&nbsp; </SPAN>function np() { </DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>print $this-&gt;num_rows();</DIV>  <DIV><SPAN>&nbsp; </SPAN>}</DIV>  <DIV>&nbsp;</DIV>  <DIV><SPAN>&nbsp;
 </SPAN>function f($Name) {</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>if (isset($this-&gt;Record[$Name])) {</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>return $this-&gt;Record[$Name];</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>}</DIV>  <DIV><SPAN>&nbsp; </SPAN>}</DIV>  <DIV>&nbsp;</DIV>  <DIV><SPAN>&nbsp; </SPAN>function p($Name) {</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>if (isset($this-&gt;Record[$Name])) {</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>print $this-&gt;Record[$Name];</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>}</DIV>  <DIV><SPAN>&nbsp; </SPAN>}</DIV>  <DIV>&nbsp;</DIV>  <DIV><SPAN>&nbsp; </SPAN>/* public: sequence numbers */</DIV>  <DIV><SPAN>&nbsp; </SPAN>function nextid($seq_name) {</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>$this-&gt;connect();</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN></DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>if ($this-&gt;lock($this-&gt;Seq_Table)) {</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </SPAN>/* get sequence number (locked) and increment */ </DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>$q<SPAN>&nbsp; </SPAN>= sprintf("select nextid from %s where seq_name = '%s'",</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>$this-&gt;Seq_Table,</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>$seq_name); </DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>$id<SPAN>&nbsp; </SPAN>= @mysql_query($q, $this-&gt;Link_ID);</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>$res = @mysql_fetch_array($id);</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>/* No current value, make one */ </DIV>  <DIV><SPAN>&nbsp; </SPAN><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN>if (!is_array($res)) {</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>$currentid =
 0;</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>$q = sprintf("insert into %s values('%s', %s)",</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>$this-&gt;Seq_Table,</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>$seq_name,</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>$currentid);</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>$id = @mysql_query($q, $this-&gt;Link_ID);</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>} else {</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>$currentid = $res["nextid"];</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>}</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>$nextid = $currentid + 1; </DIV> 
 <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>$q = sprintf("update %s set nextid = '%s' where seq_name = '%s'",</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>$this-&gt;Seq_Table,</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>$nextid,</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>$seq_name);</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>$id = @mysql_query($q, $this-&gt;Link_ID);</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>$this-&gt;unlock();</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>} else {</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>$this-&gt;halt("cannot lock ".$this-&gt;Seq_Table." - has it been created?");</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>return 0;</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>}</DIV> 
 <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>return $nextid; </DIV>  <DIV><SPAN>&nbsp; </SPAN>}</DIV>  <DIV>&nbsp;</DIV>  <DIV><SPAN>&nbsp; </SPAN>/* public: return table metadata */</DIV>  <DIV><SPAN>&nbsp; </SPAN>function metadata($table = "", $full = false) {</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>$count = 0;</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>$id<SPAN>&nbsp;&nbsp;&nbsp; </SPAN>= 0;</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>$res<SPAN>&nbsp;&nbsp; </SPAN>= array();</DIV>  <DIV>&nbsp;</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>/*</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>* Due to compatibility problems with Table we changed the behavior </DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>* of metadata();</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>* depending on $full, metadata returns the following values:</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>*</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN><SPAN>&nbsp;</SPAN>* - full is false
 (default):</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>* $result[]:</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>*<SPAN>&nbsp;&nbsp; </SPAN>[0]["table"]<SPAN>&nbsp; </SPAN>table name</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>*<SPAN>&nbsp;&nbsp; </SPAN>[0]["name"]<SPAN>&nbsp;&nbsp; </SPAN>field name </DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>*<SPAN>&nbsp;&nbsp; </SPAN>[0]["type"]<SPAN>&nbsp;&nbsp; </SPAN>field type</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>*<SPAN>&nbsp;&nbsp; </SPAN>[0]["len"]<SPAN>&nbsp;&nbsp;&nbsp; </SPAN>field length</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>*<SPAN>&nbsp;&nbsp; </SPAN>[0]["flags"]<SPAN>&nbsp; </SPAN>field flags</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>*</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>* - full is true</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>* $result[]:</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>*<SPAN>&nbsp;&nbsp; </SPAN>["num_fields"] number of
 metadata records</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>*<SPAN>&nbsp;&nbsp; </SPAN>[0]["table"]<SPAN>&nbsp; </SPAN>table name</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>*<SPAN>&nbsp;&nbsp; </SPAN>[0]["name"]<SPAN>&nbsp;&nbsp; </SPAN>field name</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>*<SPAN>&nbsp;&nbsp; </SPAN>[0]["type"] <SPAN>&nbsp;&nbsp; </SPAN>field type</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>*<SPAN>&nbsp;&nbsp; </SPAN>[0]["len"]<SPAN>&nbsp;&nbsp;&nbsp; </SPAN>field length</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>*<SPAN>&nbsp;&nbsp; </SPAN>[0]["flags"]<SPAN>&nbsp; </SPAN>field flags</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>*<SPAN>&nbsp;&nbsp; </SPAN>["meta"][field name]<SPAN>&nbsp; </SPAN>index of field named "field name"</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>*<SPAN>&nbsp;&nbsp; </SPAN>This last one could be used if you have a field name, but no index. </DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;
 </SPAN>*<SPAN>&nbsp;&nbsp; </SPAN>Test:<SPAN>&nbsp; </SPAN>if (isset($result['meta']['myfield'])) { ...</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>*/</DIV>  <DIV>&nbsp;</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>// if no $table specified, assume that we are working with a query </DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>// result</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>if ($table) {</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>$this-&gt;connect();</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>$id = @mysql_list_fields($this-&gt;Database, $table);</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>if (!$id) {</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>$this-&gt;halt("Metadata query failed.");</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>return false; </DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>}</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>} else {</DIV> 
 <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>$id = $this-&gt;Query_ID; </DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>if (!$id) {</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>$this-&gt;halt("No query specified."); </DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>return false;</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>}</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>}</DIV>  <DIV><SPAN></SPAN>&nbsp;</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>$count = @mysql_num_fields($id);</DIV>  <DIV>&nbsp;</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>// made this IF due to performance (one if is faster than $count if's)</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>if (!$full) {</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>for ($i=0; $i&lt;$count; $i++) {</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>$res[$i]["table"] = @mysql_field_table ($id, $i);</DIV> 
 <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>$res[$i]["name"]<SPAN>&nbsp; </SPAN>= @mysql_field_name<SPAN>&nbsp; </SPAN>($id, $i);</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>$res[$i]["type"]<SPAN>&nbsp; </SPAN>= @mysql_field_type<SPAN>&nbsp; </SPAN>($id, $i);</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>$res[$i]["len"]<SPAN>&nbsp;&nbsp; </SPAN>= @mysql_field_len<SPAN>&nbsp;&nbsp; </SPAN>($id, $i);</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>$res[$i]["flags"] = @mysql_field_flags ($id, $i); </DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>}</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>} else { // full</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>$res["num_fields"]= $count;</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN></DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>for ($i=0; $i&lt;$count; $i++) { </DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </SPAN>$res[$i]["table"] = @mysql_field_table ($id, $i);</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>$res[$i]["name"]<SPAN>&nbsp; </SPAN>= @mysql_field_name<SPAN>&nbsp; </SPAN>($id, $i);</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>$res[$i]["type"]<SPAN>&nbsp; </SPAN>= @mysql_field_type<SPAN>&nbsp; </SPAN>($id, $i);</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>$res[$i]["len"]<SPAN>&nbsp;&nbsp; </SPAN>= @mysql_field_len<SPAN>&nbsp;&nbsp; </SPAN>($id, $i); </DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>$res[$i]["flags"] = @mysql_field_flags ($id, $i);</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>$res["meta"][$res[$i]["name"]] = $i;</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>}</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>}</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN></DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>// free the result only if we were called
 on a table</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>if ($table) {</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>@mysql_free_result($id); </DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>}</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>return $res;</DIV>  <DIV><SPAN>&nbsp; </SPAN>}</DIV>  <DIV>&nbsp;</DIV>  <DIV><SPAN>&nbsp; </SPAN>/* public: find available table names */</DIV>  <DIV><SPAN>&nbsp; </SPAN>function table_names() { </DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>$this-&gt;connect();</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>$h = @mysql_query("show tables", $this-&gt;Link_ID);</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>$i = 0;</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>while ($info = @mysql_fetch_row($h)) { </DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>$return[$i]["table_name"]<SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>= $info[0];</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>$return[$i]["tablespace_name"] = $this-&gt;Database;</DIV>
  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>$return[$i]["database"] <SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>= $this-&gt;Database;</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>$i++;</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>}</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN></DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>@mysql_free_result($h);</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>return $return;</DIV>  <DIV><SPAN>&nbsp; </SPAN>}</DIV>  <DIV>&nbsp;</DIV>  <DIV><SPAN>&nbsp; </SPAN>/* private: error handling */</DIV>  <DIV><SPAN>&nbsp; </SPAN>function halt($msg) {</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>$this-&gt;Error = @mysql_error($this-&gt;Link_ID); </DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>$this-&gt;Errno = @mysql_errno($this-&gt;Link_ID);</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>if ($this-&gt;Halt_On_Error == "no")</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>return;</DIV>  <DIV>&nbsp;</DIV> 
 <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>$this-&gt;haltmsg($msg);</DIV>  <DIV>&nbsp;</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>if ($this-&gt;Halt_On_Error != "report")</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>die("Session halted.");</DIV>  <DIV><SPAN>&nbsp; </SPAN>}</DIV>  <DIV>&nbsp;</DIV>  <DIV><SPAN>&nbsp; </SPAN>function haltmsg($msg) {</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>printf("&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;b&gt;Database error:&lt;/b&gt; %s&lt;br&gt;\n", $msg);</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>printf("&lt;b&gt;MySQL Error&lt;/b&gt;: %s (%s)&lt;br&gt;\n",</DIV>  <DIV><SPAN>&nbsp; </SPAN><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN>$this-&gt;Errno,</DIV>  <DIV><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>$this-&gt;Error);</DIV>  <DIV><SPAN>&nbsp; </SPAN>}</DIV>  <DIV>&nbsp;</DIV>  <DIV>}</DIV>  <DIV>?&gt;</DIV></DIV>  <DIV><SPAN class=ad>  <DIV>&nbsp;</DIV>  <div></div>  <HR SIZE=1>  Yahoo! Messenger with Voice. <A onclick="return
 top.js.OpenExtLink(window,event,this)" href="http://us.rd.yahoo.com/mail_us/taglines/postman1/*http://us.rd.yahoo.com/evt=39663/*http://voice.yahoo.com" target=_blank>Make PC-to-Phone Calls</A> to the US (and 30+ countries) for 2�/min or less.   <div></div></SPAN></DIV><BR>_______________________________________________<BR>Users mailing list<BR><A onclick="return top.js.OpenExtLink(window,event,this)" href="mailto:Users@openser.org">Users@openser.org</A><BR><A onclick="return top.js.OpenExtLink(window,event,this)" href="http://openser.org/cgi-bin/mailman/listinfo/users" target=_blank>http://openser.org/cgi-bin/mailman/listinfo/users</A><BR><BR><BR></BLOCKQUOTE></DIV><BR><BR clear=all><BR>-- <BR>Thanks and Regards with cheers<BR>Sunkara Ravi Prakash <BR>Hyperion Technology<BR>Kondapur, Hi-tech city,<BR>Hyderabad.<BR><A href="http://www.hyperion-tech.com/">www.hyperion-tech.com</A><BR>+91-9985077535 </BLOCKQUOTE><BR><p> 
                <hr size=1>Talk is cheap. Use Yahoo! Messenger to make PC-to-Phone calls. <a href="http://us.rd.yahoo.com/mail_us/taglines/postman7/*http://us.rd.yahoo.com/evt=39666/*http://messenger.yahoo.com"> Great rates starting at 1&cent;/min.<p>&#32;
                <hr size=1>How low will we go? Check out Yahoo! Messenger’s low <a href="http://us.rd.yahoo.com/mail_us/taglines/postman8/*http://us.rd.yahoo.com/evt=39663/*http://voice.yahoo.com"> PC-to-Phone call rates.