PHP3 + DBMaker ¸ê®Æ®wµ{¦¡³]­p

¥Ø ¡@ ¿ý

²Ä¤@³¹ PHP3¦w¸Ë»P³]©w

1.1 PHP3 ²¤¶
1.2 PHP3 Server ªº¦w¸Ë»P³]©w

¤@¯ë¦w¸Ë
¨Ï¥ÎDBMaker

²Ä¤G³¹ PHP3»yªk

2.1 ¦bHTML¤¤¥[¤JPHP3
2.2 ÅܼÆ

Åܼƪì©l(initialize)
Åܼƽd³ò

2.3 ¨ú±o¨Ï¥ÎªÌ±qBrowser¿é¤Jªº­È

¨Ï¥ÎPost¤ÎGet
§Q¥ÎURL¶Ç»¼°Ñ¼Æ
¨Ï¥Î
Cookie

2.4 ¸ê®Æ«¬ºA
2.5 »y¨¥µ²ºc

IF Else ELSEIF
IF(): ¡K ENDIF

WHILE

DO..WHILE

FOR

SWITCH
REQUIRE
INCLUDE

2.6 FUNCTION

¶Ç¦^­È
¨ç¼Æ°Ñ¼Æ

2.7 ¹Bºâ¤l

¼Æ¦r¹Bºâ¤l
¦r¦ê¹Bºâ¤l

ÅÞ¿è¹Bºâ¤l

¤ñ¸û¹Bºâ¤l

²Ä¤T³¹ DBMaker

3.1 DBMaker¦w¸Ë
3.2 DBMaker ¤¶²Ð
3.3 Dmconfig.ini
3.4 «Ø¥ß¸ê®Æ®w

¸ê®Æ®w¦WºÙ
§Q¥ÎSQL»yªk«Ø¥ß¸ê®Æ®w
§Q¥ÎServer Manager«Ø¥ß¸ê®Æ®w
«Ø¥ß³æ¾÷¸ê®Æ®w
±Ò°Ê¸ê®Æ®w¦øªA¾¹(dmserver «ü¥O)
±Ò°Êclient/server¸ê®Æ®w¦øªA¾¹(Server Manager)
Ãö³¬¦øªA¾¹(dmSQL)
Ãö³¬¸ê®Æ®w¦øªA¾¹(Server Manager)

3.5 Äæ¦ì«¬ºA»¡©ú
3.6 ªí®æ¾Þ§@

«Ø¥ßªí®æ
§R°£ªí®æ
·s¼WÄæ¦ì
§ó§ïªí®æµ²ºc

3.7 ¸ê®Æ¦s¨ú

´¡¤J¸ê®Æ(insert )
¸ê®Æ§ó·s(update)
¸ê®Æ§R°£(delete)
¸ê®Æ¬d¸ß(select)

3.8 DBMaker¥þ¤åÀ˯Á¨ç¼Æ

HIGHLIGHT
HITCOUNT
HITPOS

BLOBLEN

HTMLTITLE

²Ä¥|³¹ PHP3+DBMaker

4.1 ¨BÆJ»¡©ú
4.2 ³s±µ¸ê®Æ®w

ODBC_CONNECT
ODBC_CLOSE

ODBC_CLOSEALL

4.3 ³]©w¥æ©ö³B²z

ODBC_AUTOCOMMIT
ODBC_COMMIT
ODBC_ROLLBACK

4.4 °õ¦æSQL«ü¥O

ODBC_PREPARE
ODBC_EXECUTE

ODBC_EXEC
ODBC_DO

4.5 Â^¨ú¸ê®Æ

ODBC_RESULT_ALL
ODBC_FETCH_INTO

ODBC_FETCH_ROW
ODBC_RESULT
ODBC_RUM_ROWS

ODBC_NUM_FIELDS

DOBC_FIELD_NUM

ODBC_FIELD_NAME

ODBC_FIELD_TYPE
ODBC_FREE_RESULT

¡@

 

  1. PHP3¦w¸Ë»P³]©w
    1. PHP3 ²¤¶

      ¥þ¦W¬°Personal Home Page III¡APHP3¬O¤@ºØªþ¥[¦bHTML¤¤ªºµ{¦¡»y¨¥¡A¥i±NÀɮ׸g¹Lphp3.exeªºcomplier«á¡A½sͦ¨HTMLÀɦӵo§G¥X¥h¡A©Ò¥HPHP3¥i¥H¸Ë¸m©óserverºÝ¦Ó¤£¥Î¸Ë¸m©óclientºÝ¡C¡A²Ä¤@ª©¦b1995¦~ªìµo¦æ¡A²Ä¤Gª©¦b1995¦~¤¤µo¦æ¡A¦b1997¦~±À¥XPHP²Ä¤Tª©¡A¤]´N¬O²{¦bªºPHP3¡A±q±À¦æ¥H¨Ó¡A¥Ñ©ó²³æ©ö¾Ç¡A¨ü¨ì¼s¤j¨Ï¥ÎªÌªºÅwªï¡A¨ìMarch 1999¬°¤î¦@¦³ 409418 Domains, 143667 IP Addresses¨Ï¥ÎPHP¨Ó°µ¬°¶}µoºô¯¸¸ê®Æ®w¨t²Îªºµ{¦¡»y¨¥¡A3.0 ª©§ó¥[¤J¦w¥þ±±¨îªº¥\¯à¡A¤]¤ä´©Àɦw¤W¸ü¤ÎHTTP cookieªº¥\¯à¡A³Ì­«­nªº¬O¥i¥H³s±µ¨ì¥Ø«e¦UºØª¾¦Wªº¸ê®Æ®w¨t²Î¡A¦CÁ|¦p¤U¡G

      DBMaker

      Oracle

      Adabas D

      Sybase

      FilePro

      mSQL

      Velocis

      MySQL

      Informix

      Solid

      dBase

      ODBC

      Unix dbm

      PostgreSQL

    2. PHP3 Server ªº¦w¸Ë»P³]©w

    ¤@¯ë¦w¸Ë

    ±z¥i¥H¿ï¾Ü±NPHP3¦w¸Ë¦bWindows NT¤W©Î¬OUnix-basedªº§@·~¥­¥x¤W¡A¦b¥»®Ñ¤¤¥u¦³¤¶²Ð¦p¦ó¦w¸ËPHP3¨ì±zªºLinux§@·~¨t²Î¤W¡A¥i¥H¨ìhttp://www.php.net.ºô¯¸¤WÀH®É¤U¸ü³Ì·sªºª©¥»¡C

    ¦w¸Ë¨BÆJ¦p¤U

    1. gunzip apache_1.3.x.tar.gz

    2. tar xvf apache_1.3.x.tar

    3. gunzip php-3.0.x.tar.gz

    4. tar xvf php-3.0.x.tar

    5. cd apache_1.3.x

    6. ./configure --prefix=/www

    7. cd ../php-3.0.x

    8. ./configure --with-mysql --with-apache=../apache_1.3.x --enable-track-vars

    9. make

    10. make install

    11. cd ../apache_1.3.x

    12. ./configure --prefix=/www --activate-module=src/modules/php3/libphp3.a

    13. make

    14. make install

    Instead of this step you may prefer to simply copy the httpd binary overtop of your existing binary. Make sure you shut down your server first though.

    15. cd ../php-3.0.x

    16. cp php3.ini-dist /usr/local/lib/php3.ini

    You can edit /usr/local/lib/php3.ini file to set PHP options. If you prefer this file in another location, use --with-config-file=/path in

    step 8.

    17. Edit your httpd.conf or srm.conf file and add:

    AddType application/x-httpd-php3 .php3 You can choose any extension you wish here. .php3 is simply the one we suggest.

    ¨Ï¥ÎDBMaker

    ¦w¸Ë§¹Apache Server ¤§«á¡A°õ¦æphp.txt¡A¤º®e¦p¤U

    cd php-3.0.7

    patch -p1 < ../php-3.07-dbmaker.patch

    env CUSTOM_ODBC_LIBS="-ldmapic" ./configure --with-custom-odbc=/home3.\

    --with-apxs=/usr/local/www/apache/bin/apxs --enable-track-vars

    make

    make install (¨Ï¥Îroot±b¸¹)

    ¡@

    ³o­ÓÀÉ®×·|±NPHP3¤¤ªºsample§ï¦¨for DBMakerªºsample¡A¦P®É¤]±Nodbc.hÀɮ׭ק令¾A¦XDBMakerªº¤º®e¡C

  2. PHP3»yªk
    1. ¦bHTML¤¤¥[¤JPHP3

      ±q³o¤@³¹¶}©l¡A§Ú­Ì­n¶}©l¤¶²Ð¦p¦ó¼¶¼g±zªº²Ä¤@­ÓPHP3µ{¦¡¡A´N¹³ASP, Java¤@¼Ë¡A±z¥i¥H¦b±zªºHTML¤¤ª½±µ¥[¤J¤@¬qPHP3ªºµ{¦¡½X¡A©Î¬O¼¶¼g¤@­Ó¥þ³¡³£¬OPHP»yªkªºµ{¦¡¡A¼¶¼g¦nªºµ{¦¡¡A¦b¤@¯ëªº±¡ªp¤U¡A°ÆÀɦW½Ð©R¦W¬°.php3¡A¦pªG±z¦b¦w¸Ë®É³]©w°ÆÀɦW¤£¬Ophp3(AddType application/x-httpd-php3 .php3)¡A¨º´N­n¨Ï¥Î±z³]©wªº°ÆÀɦW¡C

      ¦bPHP3Àɮפ¤¡A±z¥i¥H¨Ï¥Î¤U¦C¥|ºØ¤èªk¨Óªí¥Ü¸Ó¬q¤å¦r¬°PHP3ªºµ{¦¡¡C

      1. <? echo("this is the simplest, an SGML processing instruction\n"); ?>

      2. <?php echo("if you want to serve XML documents, do like this\n"); ?>

      3. <script language="php">

      echo("some editors (like FrontPage) don't like processing

      instructions");

      </script>

      4. <% echo("As of PHP 3.0.4 you may optionally use ASP-style tags"); %>

    2. ÅܼÆ

      Åܼƪì©l(initialize)

      ¦bPHP3¤¤¡A¦b¨Ï¥ÎÅܼƤ§«e±z¤£»Ý­n«Å§iÅܼơA¤]¤£»Ý«ü©wÅܼƪº«¬ºA¡A­nªì©l¤@­ÓÅܼơA¥u­n«ü©w­Èµ¹¸ÓÅܼƧY¥i¡A¦p

      ªì©l¤@­Óarray

      $names[] = "Jill"; // $names[0] = "Jill"

      $names[] = "Jack"; // $names[1] = "Jack"

      ¡@

      ªì©l¤@­Óª«¥ó

      class foo {

      function do_foo() {

      echo "Doing foo.";

      }

      }

      $bar = new foo;

      $bar->do_foo();

      Åܼƽd³ò

      ¦bPHP3¤¤¡AÅܼƦ³®Ä½d³ò¥u­­©w¦b¨ä©w¸qªºµ{¦¡¤¤¡A¦pªGµ{¦¡¥]§tfunction¡Afunction¤ºªºÅܼƦ³®Ä½d³ò¤]¥u­­©w©ófunction ¤º¡A¦pªGfunction­n¨Ï¥Îfunction¥~ªºÅܼơA¥²¶·¦bÅܼƫe­±¥[¤Wglobal¡@

      ½d¨Ò1:¤£¨Ï¥Îglobal

      $a=1; /* global scope */

      Function Test() {

      echo $a; /* reference to local scope variable, a ¬°ªÅ­È */

      }

      Test();

      ½d¨Ò2: ¨Ï¥Îglobal¦s¨úÅܼơA$bµ²ªG¬°3

      $a=1;

      $b=2;

      Function Sum() {

      global $a,$b;

      $b = $a + $b;

      }

      Sum();

      echo $b;

      ½d¨Ò3:¡@¨Ï¥Î$glbals¦s¨úÅܼơA

      $a=1;

      $b=2;

      Function Sum()

      $GLOBALS["b"] = $GLOBALS["a"] + $GLOBALS["b"];

      }

      Sum();

      echo $b;

      ¡@

      ¦³®É­Ô±z»Ý­n¨Ï¥Î¨ìÀRºAªºÅܼơA¨Ò¦p¤@­Ó»¼°jªºµ{¦¡¡A¦b¤U¨Ò¤¤¡A«ü©wcount¬°¤@­ÓÀRºAªºÅܼơA¥¦¥uªì©l¤@¦¸¡A©¹«á¦A¸I¨ìstatic $count=0ªº»yªk¡A¤£·|­«·sªì©lÅܼơC

      ½d¨Ò

      Function Test() {

      static $count=0;

      $count++;

      echo $count;

      if($count < 10) {

      Test();

      }

      }

    3. ¨ú±o¨Ï¥ÎªÌ±qBrowser¿é¤Jªº­È

      ¨Ï¥ÎPost¤ÎGet

      ¦bCGI¤¤±z¥i¥H¨Ï¥ÎPost¤ÎGet¤GºØ¤èªk¶Ç»¼client¿é¤Jªº­È¨ìweb server¤¤¡A¦ýServerºÝ«ç»ò¥h±µ¦¬clientºÝ¶Ç¹L¨Óªº­È©O¡H¦pªG¨Ï¥Îªº¬O¶Ç²ÎªºC¡A­n¨ú±o¨Ï¥ÎªÌ¿é¤Jªº­È«D±`³Â·Ð¡A¦ý¦bPHP3¤¤«o¬O«D±`²³æªº¤@¥ó¨Æ¡A¥u­n¨Ï¥Î¸òFormùØ­±ªºª«¥ó¦WºÙ¤@¼Ò¤@¼ËªºÅܼơA´N¥i¥H¦s¨ú¨ì¨Ï¥ÎªÌ¿é¤Jªº­È¡C

      ½d¨Ò

      ¨Ò¦p±z³]­pªº¤@­ÓForm¦p¤U¡A·í±z«ö¤Uµe­±¤¤ªºsubmit®É¡A·|±Ò°Êserver ºÝªºsubmit.php3µ{¦¡¡A¦]¦¹¦pªG­n¦bsubmit.php3µ{¦¡¤¤±oª¾¨Ï¥ÎªÌ¿é¤Jªº­È¡A¥u­n¨Ï¥Î$text1ÅܼƧY¥i¡A

      

      <form method="post" action="submit.php3" name="test_form">

      <p>input value:

      <input type="text" name="text1">

      </p>

      <p>

      <input type="submit" name="Submit" value="Submit">

      </p>

      </form>

      §Q¥ÎURL¶Ç»¼°Ñ¼Æ

      ¦bWWW¤¤¡A±z¥i¯à±`¨£¨ì¦p¤Uªº»yªk

      <A Href="show.php3?sn=20&category=book">«ö³oùØ¥i¥H¨£¨ì¸Ô²Ó¤º®e</a>

      ­n¨ú±o¶Ç»¼¹L¨Óªº°Ñ¼Æ¡A¥u­n¨Ï¥Î¸ò°Ñ¼Æ¦WºÙ¤@¼Ò¤@¼ËªºÅܼƧY¥i¡A¦p$sn,$category

      ¨Ï¥ÎCookie

      ±z¥i¥H¨Ï¥ÎSetCookie³o­Ó¨ç¼Æ¨Ó±N­È¦s¨ì¨Ï¥ÎªÌºÝªº¹q¸£¤¤¡A¦pªG­n¨ú±o¨Ï¥ÎªÌºÝ¹q¸£¤¤ªºCookie­È¡Aª½±µ¨Ï¥Î­ì¥ý¦s¤JªºÅܼƦWºÙ§Y¥i¡C

      SetCookie("TestCookie","Test Value");

      SetCookie("TestCookie",$value,time()+3600); /* expire in 1 hour */

      ª`·N¡G¥Ñ©óCookie¬OHTTP Headerªº¤@³¡¥÷¡A¦]¦¹±z¥²¶·¦b¿é¤Jºô­¶¤º®e¤§«e¨Ï¥ÎSetCookie¡A§_«h¦¹¨ç¼Æ´NµLªk¥Í®Ä¡C

      ¡@

    4. ¸ê®Æ«¬ºA

      ¦b¤@¯ëªºµ{¦¡»y¨¥¤¤¡A¨C­ÓÅܼƳ£¦³¨ä«¬ºA¡A¦pinteger, string, float, double..µ¥¡A¦ý¦bPHP3¤¤¡A±z¤£¶·­n«ü©wÅܼƪº«¬§O¡APHP3·|®Ú¾Ú±z¿é¤Jªº­È¦Û°ÊÀ°±zÂà´«¸ê®Æ«¬§O¡C

      ½d¨Ò¡G

      $foo = "0"; // $foo is a string (ASCII 48)

      $foo++; // $foo is the string "1" (ASCII 49)

      $foo += 1; // $foo is now an integer (2)

      $foo = $foo + 1.3; // $foo is now a double (3.3)

      ¦pªG±z­n±j¨îPHP3¨Ï¥Î¯S©wªº¸ê®Æ«¬§O¡A¥i¥Hª½±µ¦bÅܼƫe¥[¤J¸Ó¸ê®Æªº«¬§O¡A¦p

      $foo = 10; // $foo is an integer

      $bar = (double) $foo; // $bar is a double

      ¤¹³\ªº¸ê®Æ«¬§O¦p¤U¡G

      (int), (integer) - cast to integer

      (real), (double), (float) - cast to double

      (string) - cast to string

      (array) - cast to array

      (object) - cast to object

      ¡@

    5. »y¨¥µ²ºc

      IF

      if (expr)

      statement

      ½d¨Ò1

      if ($a > $b)

      print "a is bigger than b";

      ½d¨Ò2

      if ($a>$b) {

      print "a is bigger than b";

      $b = $a;

      }

      Else

      if ($a>$b) {

      print "a is bigger than b";

      } else {

      print "a is NOT bigger than b";

      }

      ELSEIF

      if ($a > $b) {

      print "a is bigger than b";

      } elseif ($a == $b) {

      print "a is equal to b";

      } else {

      print "a is smaller than b";

      }

      IF(): ¡K ENDIF

      ¦pªG¦b±zªºIF±Ô­z¤¤»Ý­n¨Ï¥Î¨ì¤@¯ëªºHTML¡A°£«D±z¨Ï¥Îecho¡A§_«h±z¤£¯àª½±µ±NHTML¥[¦bµ{¦¡¤¤¡A¦pªG±z­n¦bIF¤¤¥[¤JHTML¡A¥i¥H¨Ï¥ÎIF(): ¡K ENDIF¨Ó¥N´À

      ½d¨Ò1¡G¿ù»~½d¨Ò

      <?php if ($a==5){ ?>

      <font size=¡¨2">Welcome!</font>

      <?php } ?>

      ¡@

      ½d¨Ò2:¥¿½T½d¨Ò

      <?php if ($a==5): ?>

      <font size=¡¨2">Welcome!</font>

      <?php endif; ?>

      WHILE

      »yªk¡G

      WHILE(expr) statement

      WHILE(expr): statement ... ENDWHILE;

      ½d¨Ò1¡G

      $i=1;

      while ($i<=10) {

      print $i++; /*¥ýPrint¥X$i¤§«á¡A¦A±Ni¥[1*/

      }

      ½d¨Ò2¡G

      $i=1;

      while ($i<=10):

      print $i;

      $i++;

      endwhile;

      DO..WHILE

      ½d¨Ò1¡G

      $i = 0;

      do {

      print $i;

      } while ($i>0);

      ½d¨Ò2¡G

      do {

      if ($i < 5) {

      print "i is not big enough";

      break;

      }

      $i *= $factor;

      if ($i < $minimum_limit) {

      break;

      }

      print "i is ok";

      } while(0);

      FOR

      »yªk¡G

      FOR (expr1; expr2; expr3) statement

      ¤£¤ä´©FOR(expr): ... ENDFOR

      ½d¨Ò1¡G

      for ($i=1; $i<=10; $i++) {

      print $i;

      }

      ½d¨Ò2¡G

      for ($i = 1;;$i++) {

      if ($i > 10) {

      break;

      }

      print $i;

      }

      ½d¨Ò3¡G

      $i = 1;

      for (;;) {

      if ($i > 10) {

      break;

      }

      print $i;

      $i++;

      }

      SWITCH

      ½d¨Ò1¡G¨Ï¥ÎIF

      if ($i == 0) {

      print "i equals 0";

      }

      if ($i == 1) {

      print "i equals 1";

      }

      if ($i == 2) {

      print "i equals 2";

      }

      ½d¨Ò2:¨Ï¥Îswitch

      switch ($i) {

      case 0:

      print "i equals 0";

      break;

      case 1:

      print "i equals 1";

      break;

      case 2:

      print "i equals 2";

      break;

      }

      ¦bswitch¤¤¡A·í±ø¥ó²Å¦X®É¡A¤@©w­n¨Ï¥Îbreak¨Ó¸õ¥Xswitch¡A§_«hPHP3·|±qÄ~Äò°õ¦æ«á­±ªº±Ô­z

      ½d¨Ò3:

      switch ($i) {

      case 0:

      print "i equals 0";

      case 1:

      print "i equals 1";

      case 2:

      print "i equals 2";

      }

      ·í$i=0®É¡A·|¦C¦L¥Xi equals 0 i equals 1 i equals 2

      ·í$i=1®É¡A·|¦C¦L¥Xi equals 1 i equals 2

      ·í$i=2®É¡A·|¦C¦L¥Xi equals 2

      ½d¨Ò4:¨ä¥¦­È¥i¥H¥ÎDefaultªí¥Ü

      switch ($i) {

      case 0:

      print "i equals 0";

      break;

      case 1:

      print "i equals 1";

      break;

      case 2:

      print "i equals 2";

      break;

      default:

      print "i is not equal to 0, 1 or 2";

      }

      REQUIRE

      include¤@­ÓÀÉ®×¶i¨Ó¡A¸òC»y¨¥¤¤ªº#include«D±`Ãþ¦ü¡A¦ý±z¤£¯à¦b°j°é¤¤¨Ï¥ÎREQUIRE

      ½d¨Ò¡G

      require('header.inc');

      INCLUDE

      ¸òREQUIRE¤@¼Ë¡A¤£¦Pªº¬O¡A±z¥i¥H¦b°j°é¤¤¨Ï¥ÎINCLUDE

      ½d¨Ò¡G

      $files = array('first.inc', 'second.inc', 'third.inc');

      for ($i = 0; $i < count($files); $i++) {

      include($files[$i]);

    6. FUNCTION

      ¦bPHP3¤¤¡A±z¤]¥i¥H©w¸q¤@¨Ç¨ç¼Æ¡A©w¸qªº¤è¦¡¤j·§¦p¤U¡G

      function foo( $arg_1, $arg_2, ..., $arg_n ) {

      ¡@¡@¡@echo "Example function.\n";

      return $retval;

      ¡b

      ¶Ç¦^­È

      ¦pªG¦b¨ç¼Æ¤¤­n¶Ç¦^­È¡A¥i¥H¨Ï¥ÎReturn

      ½d¨Ò1¡G¶Ç¦^³æ¤@­È

      function my_sqrt( $num ) {

      return $num * $num;

      }

      echo my_sqrt( 4 ); // outputs '16'.

      ½d¨Ò2:¶Ç¦^¦h­«­È

      function foo() {

      return array( 0, 1, 2 );

      }

      list( $zero, $one, $two ) = foo();

      ¨ç¼Æ°Ñ¼Æ

      ¦bµ{¦¡¤¤¡A±z¤]¥i¥H¶Ç»¼°Ñ¼Æ¦Ü¨ç¼Æ¤¤³B²z¡A°Ñ¼Æ¶Ç»¼¤S¤À¬°Passing by reference¤ÎPassing by value¡A¹w³]­È¬°Passing by value¡C

      ½d¨Ò1:Passing by reference

      function foo( &$bar ) {

      $bar .= ' and something extra.';

      }

      $str = 'This is a string, ';

      foo2( $str );

      echo $str; // outputs 'This is a string, and something extra.'

      ½d¨Ò2:Passing by value

      function foo( $bar ) {

      $bar .= ' and something extra.';

      }

      $str = 'This is a string, ';

      foo2( $str );

      echo $str; // outputs 'This is a string, '

      foo2( &$str );

      echo $str; // outputs 'This is a string, and something extra.'

    7. ¹Bºâ¤l

    ¼Æ¦r¹Bºâ¤l

    ¦WºÙ

    ½d¨Ò

    ¥[ªk(Addition)

    $a + $b

    ´îªk(Subtraction)

    $a - $b

    ­¼ªk(Multiplication)

    $a * $b

    °£ªk(Division)

    $a / $b

    ¨ú¾l¼Æ(Modulus)

    $a % $b

    ¦r¦ê¹Bºâ¤l

    ­n¬Û¥[¤G­Ó¦r¦ê¡A¥²¶·¥Î¡¨.¡¨

    ½d¨Ò¡G

    $a = "Hello ";

    $b = $a . "World!"; // now $b = "Hello World!"

    ÅÞ¿è¹Bºâ¤l

    ½d¨Ò

    ¦WºÙ

    µ²ªG

    $a and $b

    And

    $a,$b¬Ò¬°True,¤~·|¶Ç¦^True

    $a or $b

    Or

    $a,$b¨ä¤¤¤@­Ó¬°True,¶Ç¦^True

    $a xor $b

    Or

    $a,$b¨ä¤¤¥u¦³¤@­Ó¬°True®É¡A¶Ç¦^True,­Y¤G­Ó¬Ò¬°True©Î¬OFalse,¶Ç¦^False

    !$a

    Not

    $a¤£¬°True®É¡A¶Ç¦^True

    $a && $b

    And

    $a, $b¬Ò¬°True,¤~·|¶Ç¦^True

    $a || $b

    Or

    $a, $b¨ä¤¤¤@­Ó¬°True,¶Ç¦^True

    ¤ñ¸û¹Bºâ¤l

    ½d¨Ò

    ¦WºÙ

    µ²ªG

    $a == $b

    µ¥©ó

    $aµ¥©ó$b®É¡A¤~·|¶Ç¦^True

    $a != $b

    ¤£µ¥©ó

    $a¤£µ¥©ó$b®É,¶Ç¦^True

    $a < $b

    ¤p©ó

    $a¤p©ó$b®É,¶Ç¦^True

    $a > $b

    ¤j©ó

    $a¤j©ó$b®É,¶Ç¦^True

    $a <= $b

    ¤p©ó©Îµ¥©ó

    $a¤p©ó©Îµ¥©ó$b®É,¶Ç¦^True

    $a >= $b

    ¤j©ó©Îµ¥©ó

    $a¤j©ó©Îµ¥©ó$b®É,¶Ç¦^True

  3. DBMaker
    1. DBMaker¦w¸Ë

DBMakerªº¦w¸Ë¬Û·í®e©ö¡ADBMaker±À¥X¥H¨Ó¨ü¨ì¬Û·í¼s¤j¨Ï¥ÎªÌªºÅwªï¡A¥Ñ©ó¨ä²³æ©ö¾Ç¡A¥\¯à±j¤j¡A¦A¥[¤W¤ä´©¤º«Ø¤¤­^¤å¥þ¤åÀ˯Á¤Î´£¨ÑWeb ¶}µoªÌ¬Û·í¹ê¥Îªºfunction¡A±z·|ı±o³]­p¤@­ÓWeb¸ê®Æ®w¨t²Î¤£¦A¬O¤@­Ó»»¤£¥i¤Îªº¹Ú·Q¤F¡C

  1. ±NDBMaker 3.5¥úºÐ ©ñ¤J±zªº¥úºÐ¾÷¤¤¡A¨Ãmount¨ìÀɮרt²Î¤W¡A¦pªG§A¤£ª¾¹D¦p¦ómount¥úºÐ¡A½Ð¸ß°Ý±zUNIX¨t²Î¥D¾÷ªº¨t²ÎºÞ²z­û¡C
  2. ¥ý¦b±zªºLinux¨t²Î¤W«Ø¤@­Ó¦W¬° dbmakerªº±b¸¹¡C
  3. ¨Ï¥Î dbmaker ³o­Ó±b¸¹µn¿ý¨ì±zªºLinux¥D¾÷¡C
  4. °õ¦æ setup µ{¦¡,±z¥i¥H¦b ¥úºÐ¤¤§ä¨ì¬Û¹ï©ó±z©Ò¨Ï¥Î Linux§@·~¨t²Îªº¥Ø¿ý(¤ñ¦p: \UNIX\Linux2.x86)¡C
  5. ¿í·Ó¦w¸Ëµ{¦¡ªº¤Þ¾É¾Þ§@§Y¥i¡C

¡@

    1. DBMaker ¤¶²Ð

      DBMaker ¬°¥\¯à±j¤jªºÃöÁp¦¡¸ê®Æ®wºÞ²z¨t²Î (RDBMS, Relational Database Management System)¡A¤ä´©µ²ºc¤Æ¬d¸ß»y¨¥ (SQL)¡AMicrosoft ¶}©ñ¦¡¸ê®Æ³sµ²¤¶­± (ODBC)¡A©M¤º´O¦¡ SQL ¤§ C »y¨¥ (ESQL/C)¡C¥Ñ©ó DBMaker §¹¥þ¿í´`¶}©ñ¦¡ªº¬[ºc¡A¥H DBC ¬°°ò¥»µ{¦¡¤¶­±¡A±z¥i¥H«Ü®e©ö¦a§Q¥Î¥«­±¤W ODBC ¬Û®e À³¥Î³nÅé¨Ó¬d¸ß DBMaker ¸ê®Æ®wªº¤º®e¡A¥H¤Î§Q¥Î²{¦³ªº¶}µo¤u¨ãµo®i¸ê®Æ®wÀ³¥Îµ{¦¡¡C

      DBMaker ¬O¤@®MÀu¶Vªº°Ó¥Î¸ê®Æ®wºÞ²z¨t²Î¡A¤£¶È¥\¯à§¹³Æ¥ý¶i¡A¦Ó¥B¾Þ§@¨Ï¥Î²³æ®e©ö¡ADBMaker Åý¨Ï¥ÎªÌ¥i¥H«Ü®e©ö¦a±q­Ó¤H¹q¸£¤Wªº³æ¤@¥Î¤á¸ê®Æ®w¡A²@¤£¶O§j¦Ç¤§¤O§Y¥i¤É¯Å¨ì¤À´²¦¡¸ê®Æ®w¨t²Î ¡F¤£½×±z¨Ï¥Îªº¬O³æ¤@¥Î¤á¸ê®Æ®w©Î¬O°Ó¥Î¸ê®Æ ®w¡ADBMaker ³£´£¨Ñµ¹±z³Ì¥ý¶iªº¦w¥þ©Ê¡B§¹¾ã©Ê©M¥i¾a©ÊºÞ²z¡C

      ¥t¥~¡ADBMaker ªº¸ó¥­¥x¤ä´©¯S©Ê¡A«O»ÙµwÅé¤É¯Å®É¡A¥i¥HÂà´«¶¶ºZµLµh¤É¯Å¡A¬O±z§ë¸ê¦b RDBMS ¤W¸`¬Ù®É¶¡¡B¤H¤O©Mª÷¿úªº³Ì¨Î«OÃÒ¡C

      ¡@

      DBMaker ¦P®É¤]´£¨Ñ¤FÀu²§ªº¦h´CÅé¤ä´©¯à¤O¡A¥i¥HÅý±z¦s¨ú¡B¬d¸ß©M¾Þ§@¦UºØ¦h´CÅé¸ê®Æ¡C§Q¥Î DBMaker ©Ò´£¨Ñªº¤j«¬¤G¤¸ª«¥ó (BLOB, Binary large object) ¸ê®Æ«¬§O¡A±zªº¦h´CÅé¸ê®Æ§ó¥i¥H§¹¥þ¨É¦³ DBMaker ¥ý¶iªº¦w¥þ©ÊºÞ²z©M¼ì·l¦^´_ (Crash/Recovery) ¥\¯à¡F¦Ó§Q¥ÎÀɮת«¥ó (File Object) ¸ê®Æ«¬§O¡A «h¥i¥HÅý±zªº DBMaker ¸ê®Æ®w¤]¦³¯à¤OºÞ²z¥~³¡ÀɮסC

      ¦¹¥~¡A¥þ¤åÀ˯Á®É¥i¦Û©w§Æ±æ±Æ§ÇªºÄæ¦ì¡A¦b«Ø¥ß¥þ¤åÀ˯Á¯Á¤Þ®É¡A¥i¥H«ü©w¬Y¤@­ÓÄæ¦ì¡A¥H«K¬d¸ß®É¨Ì¦¹Äæ¦ì¶¶§ÇÀ˯Á¥X²Å¦Xªº¸ê®Æ¡C·íÀ˯Á¥Xªº¸ê®Æ¶q¬Û·í¤j®É¡AµL»Ý¦A¸g±Æ§Ç°Ê§@¡A¥iª½±µ¨Ì©Ò«ü©wªºÄæ¦ì¶¶§Ç´`§Ç¨ú±oµ²ªG¡C¥þ¤åÀ˯Á¤]´£¨Ñ¤F³\¦h¤å¥ó³B²z¨ç¼Æ¡A´£¤É¤F¹ï¤å¥óªº³B²z¯à¤O¡C¥]¬A¡G¦b·j´M¦r¦ê«e«áµ¹¤©¼ÐÅÒ(tag)¡B­pºâ²Å¦X·j´M¦r¦êªºÁ`­Ó¼Æ¡BÅã¥Ü¤å¥ó¤¤´M§ä¨ì·j´M¦r¦êªº¦ì¸m¡BÅã¥ÜBLOBÄæ¦ìªº¤j¤p¤ÎÅã¥ÜHTML¤å¥óªº¼ÐÃDµ¥¡C

    2. Dmconfig.ini

      ·íDBMakerªº¸ê®Æ®w¤ÞÀº°_°Ê®É©Î·í¨Ï¥ÎªÌ³sµ²¨ì¸ê®Æ®w®É¡ADBMaker¥²¶·°_©l¤@¨Ç°Ñ¼Æ¨Ó³]©w¥»¨­¡C³o¨Ç°Ñ¼Æ±q¦WºÙ¬°dmconfig.iniªºASCII¤å¦r²ÕºAÀɤ¤Åª¨ú¥X¨Ó¡C³o­Ó¤å¦rÀÉÀx¦s¤FDBMaker¥Î¨Ó³]©w¥»¨­ªºÃöÁä¦r©M¨ä¹ï¬M­È¡C¦]³o­ÓÀɮ׬O¤@­ÓASCII§Î¦¡ªºÀɮסA°²¦p¦³»Ý­n¡A¸ê®Æ®wºÞ²z­û¥i¥H§Q¥Î¤å¦r½s¿è¾¹¨Ó§ïÅܳo¨Ç³]©w­È¡C

      ¦b¤@¯ëªºª¬ªp¤U¡A¸ê®Æ®w±Ò°Ê®É¶·­nŪ¨ú³o¨ÇÃöÁä¦rªº³]©w­È¡C°²¦p¦b¸ê®Æ®w±Ò°Ê«á¤~§ïÅÜÃöÁä¦rªº³]©w±NµLªk§ïÅܨt²Î³]©w¡A¤U¤@¦¸ªº¸ê®Æ®w±Ò°Ê¤~·|¯u¥¿ªº¨ü¨ì¼vÅT¡C¦Ó¤@¨ÇÃöÁä¦r«h´£¨Ñ¨Ï¥ÎªÌ³sµ²¨ì¸ê®Æ®w©Ò¥Î¡C¨Ï¥ÎªÌ¥i¥H¦b¸ê®Æ®w±Ò°Ê«á¡A¤U¹F³sµ²«ü¥O«e§ïÅܳo¨ÇÃöÁä¦r¡C

      ²ÕºA°Ñ¼Æ¬°¼vÅTDBMakerªº®Ä¯àªº­«­n¦]¯À¡C©Ò¥H±zÀ³¸Óª`·N¨C­Ó²ÕºA°Ñ¼Æªº¼vÅT¨Ã¹w¦ô¾A·íªº­È¥H½T«ODBMakerªº®Ä¯à¡C§Ú­Ì«ØÄ³¸ê®Æ®wºÞ²z­û¦b³Æ¥÷¸ê®Æ®w®É±Ndmconfig.ini²ÕºAÀɤ@¦P³Æ¥÷¡C

      ¥t¥~¤@­Ódmconfig.ini ªº­«ÂI¬°¨ä¦ì¸m¡C¦bUNIX¨t²Î¤¤¡ADBMaker·|¥h¤U¦C¤T­Ó¦a¤è·j´M dmconfig.ini¡C³o¤T­Ó¦a¤è©MÀu¥ý¶¶§Ç¬°¡G

      1.¥Ø«eªº¥Ø¿ý

      2.Àô¹ÒÅܼÆDBMAKER©Ò«ü©wªº¥Ø¿ý

      3.¨Ï¥ÎªÌdbmakerªº¥Ø¿ý¤Uªºdata¥Ø¿ý¡]~dbmaker/data¡^¡C

      ¦b·L³nªºµøµ¡¨t²Î¤U¡Admconfig.ini¥²¶·©ñ¸m©óµøµ¡ªº¦w¸Ë¥Ø¿ý¤U¡]³q±`¬° WINDOWS¡A°£«D¦b¦w¸Ëµøµ¡®É±z§ïÅܤF¹w³]­È¡^·í±Ò°Ê¸ê®Æ®w®É¡ADBMaker·|¨ÌÄò±½´y¤W­z¤T­Ó¥Ø¿ý¡]¦bµøµ¡¨t²Î«h¬° WINDOWS¥Ø¿ý¡^¡A·j´Mdmconfig.ini¨Ó§ä¨ì©M¸ê®Æ®w¬Û¹ïÀ³ªº¸`¦W¡C°²¦p§ä¨ì¤Fdmconfig.ini¤Î¬Û¹ïªº¸`¦W¡A¸Ó¸`¤ºªºÃöÁä¦r«h·|³Q¨Ï¥Î¡A§_«hDBMaker·|Ä~Äò·j´M¤U­Ó¥Ø¿ýªºdmconfig.ini ª½¨ì¬Û²Åªº¸`¦W§ä¨ì¬°¤î¡C

      ª`·N¡G­Y±z­n¨Ï¥ÎPHP3³s±µ¦Ü¸ê®Æ®w,½Ð±N±zªºDmconfig.ini©ñ¸m¦b~dbmaker/data¥Ø¿ý¤U¡C

    3. «Ø¥ß¸ê®Æ®w

§Q¥Î¦øªA¾¹ºÞ²z­û¥i¥HÅý±z«Ø¥ß¤@­Ó¦h¨Ï¥ÎªÌ©Î³æ¨Ï¥ÎªÌªº¸ê®Æ®w¡A¦b«Ø¥ß¸ê®Æ®wªº®É­Ô¡A±z¥i¥H«ü©w¸ê®Æ®wÀɮסBBLOB¤Î¤é»xÀɮתº¦WºÙ¤Î¤j¤p¡C

¸ê®Æ®w¦WºÙ

¦b¬°¸ê®Æ®w©R¦W¤§«e¡A±z¥²¶·¥ýª¾¹D¤U¦C¸ê®Æ®w¦WºÙªº©R¦W³W«h¡C

    • ¸ê®Æ®w¦WºÙ³Ìªø¬°18­Óbytes

    • ¸ê®Æ®w¦WºÙ¥i¥H¥]§t¤¤­^¤å¦r¥À¡B¼Æ¦r¤Î©³½u¡C

    • ¸ê®Æ®w¦WºÙ¦³¤j¤p¼g°Ï¤À

    • ¸ê®Æ®w¦WºÙ¤£¯à»P¥»°Ïdmconfig.iniÀɮפ¤¤w¸g¦s¦bªº°Ï¬q¦WºÙ(section)¤@¼Ë¡C

DBMaker¥i¥H¬O¤@­Ó³B²z¤j¶q¸ê®Æ¥B¦h¨Ï¥ÎªÌªº¤j«¬¸ê®Æ®w¡A¤]¥i¥H¬O¤@­Ó¤H¨Ï¥Îªº¤p«¬¸ê®Æ®w¡A±z¥i¥H«Ø¥ß¤@­Ó³æ¨Ï¥ÎªÌªº¸ê®Æ®w¡A¦b¦P®É¶¡¤º¥u¯à¦³¤@¦ì¨Ï¥ÎªÌ³s±µ¦Ü¸ê®Æ®w¡C¨BÆJ¦p¤U¡G

§Q¥ÎSQL»yªk«Ø¥ß¸ê®Æ®w

»yªk:

CRETE DB dbname

½d¨Ò¡G

create db test

§Q¥ÎServer Manager«Ø¥ß¸ê®Æ®w

±z¥i¥H¦bDBMaker¤¤«Ø¥ß¦h¨Ï¥ÎªÌªº¸ê®Æ®w¡A¥¦¤¹³\¦b¦P®É¶¡¤º¦³¦h¦ì¨Ï¥ÎªÌ³s¦Ü¸ê®Æ®w¡C¦pªG±z­n«Ø¥ßªº¬OClient/Server¦h¨Ï¥ÎªÌ¸ê®Æ®w¡A±z¥²¶·«ü©w¸ê®Æ®w¦øªA¾¹ªºIP¦ì§}¤Î³q°T°ð¸¹½X(Port Number)¡A¸Ô²Ó¸ê°T½Ð°Ñ¾\DBA¤â¥U¡C

«Ø¥ß¸ê®Æ®wªº¨BÆJ¦p¤U¡C

  1. ±q¥\¯àªí¤¤¿ï¨ú¡i¸ê®Æ®w(«Ø¥ß¡j¿ï¶µ¡A·|¥X²{¡§«Ø¥ß¸ê®Æ®w¡¨ªº¹ï¸Ü¤è¶ô¡C



  1. ¦b¡§¸ê®Æ®w¦WºÙ¡¨Äæ¦ì¤¤¿é¤J¸ê®Æ®w¦WºÙ¡C
  2. ¿ï¾Ü¸ê®Æ®w¦s©ñªº¦ì¸m
    1. ÂI¿ï¡§¸ê®Æ®w¥Ø¿ý¡¨Äæ¦ì¥k¤èªº¡u...¡v«ö¶s¡A¥X²{¡§¿ï¾Ü¥Ø¿ý¡¨¹ï¸Ü¤è¶ô¡C



    1. ¦b¤U¤èªººÏºÐ¾÷¦Cªí¤¤¿ï¾Ü¸ê®Æ®w±ý¦s©ñªººÏºÐ¾÷¦WºÙ¡C
    2. ¿ï¾Ü±ý¦s©ñªº¥Ø¿ý¡A¿ï¾Üªº¥Ø¿ý¦WºÙÁ`ªø«×³Ì¤j¬°80 Bytes¡C
    3. ­n«Ø¥ß¤@­Ó·sªº¥Ø¿ý¡AÂI¨ú¡u«Ø¥ß·sªº¥Ø¿ý¡v«ö¶s¡A¥X²{¤@­Ó¡§¿é¤J¥Ø¿ý¦WºÙ¡¨ªº¹ï¸Ü¤è¶ô¡C



    1. ¦b¹ï¸Ü¤è¶ô¤¤¿é¤J­n«Ø¥ßªº¥Ø¿ý¦WºÙ¡AÂI¿ï¡uOK¡v«ö¶s¡A·|Ãö³¬¦¹¹ï¸Ü¤è¶ô¨Ã¦^¨ì¡§¿ï¾Ü¥Ø¿ý¡¨¹ï¸Ü¤è¶ô¡C
    2. ÂI¨ú¡u¿ï¾Ü¡v«ö¶s¡A¦^¨ì¡§«Ø¥ß¸ê®Æ®w¡¨ªº¹ï¸Ü¤è¶ô¡A«ü©wªº¸ô®|¤]·|¥X²{¦b¹ï¸Ü¤è¶ô¤¤ªº¡§¸ê®Æ®w¥Ø¿ý¡¨Äæ¦ì¡C
  1. ³]©wClient/Server ¸ê®Æ®w©Î¬O³æ¨Ï¥ÎªÌ¸ê®Æ®w
    1. ²M°£¡§¦h¨Ï¥ÎªÌ¸ê®Æ®w¡¨®Ö¹ï¤è®Ø¡Aªí¥Ü«Ø¥ßªº¬O¤@­Ó³æ¾÷ª©ªº¸ê®Æ®w
    2. ¿ï¨ú¡§¦h¨Ï¥ÎªÌ¸ê®Æ®w¡¨®Ö¹ï¤è®Ø¡Aªí¥Ü«Ø¥ßªº¬O¤@­Ó¦h¨Ï¥ÎªÌªº¸ê®Æ®w¡A¨Ã¦b¤U¤èªºÄæ¦ì¤¤¿é¤J¦øªA¾¹ªº¦ì§}(IP Address)¤Î³q°T°ð½s¸¹(Port Number)¡APort Number½d³ò¤¶©ó1025~65535¡C
  1. ÂI¿ï¡u«Ø¥ß¡v«ö¶s¡A¤§«á·|¥X²{¤@°T®§¤è¶ôÅã¥Ü¸ê®Æ®w¬O§_«Ø¥ß¦¨¥\¡C



«Ø¥ß³æ¾÷¸ê®Æ®w

1.START DB dbname username password

2.CONNECT TO dbname username password

½d¨Ò¡G

1. START DB employee SYSADM

2. CONNECT To employee SYSADM

¡@

±Ò°Ê¸ê®Æ®w¦øªA¾¹(dmserver «ü¥O)

dmserver -u username ¡Vp password database_name

½d¨Ò¡G±Ò°Êemployee¸ê®Æ®w

dmserver -u SYSADM employee

±Ò°Êclient/server¸ê®Æ®w¦øªA¾¹(Server Manager)

­n±Ò°Ê¤ÎÃö³¬¸ê®Æ®w¦øªA¾¹¡A±z¥²¶·¨ã³Æ¸ê®Æ®w¨t²ÎºÞ²zªÌªºÅv­­¡A¦b«Ø¥ß¸ê®Æ®w¤§«á²Ä¤@¦¸±Ò°Ê¸ê®Æ®w®É¡A±z¥u¯à¨Ï¥ÎSYSADM¨Ï¥ÎªÌ¦WºÙ¨Ó±Ò°Ê¸ê®Æ®w¡A¦b±Ò°Ê¸ê®Æ®w¦øªA¾¹¤§«á¡A±z¥i¥H¥ß§Y³z¹LDBMaker´£¨Ñªº¤u¨ã(dmSQL¤ÎDBMaker¸ê®Æ®wºÞ²z­û)³s±µ¨ì¸ê®Æ®w¡A¥Ñ©ó¦b¸ê®Æ®w«Ø¥ß¤§«á·|²£¥Í¤@­Ó¨S¦³±K½XªºSYSADM¨Ï¥ÎªÌ¡A¨ä¨ã¦³¸ê®Æ®w³Ì°ªªºÅv­­¡A¦]¦¹«ØÄ³±z¦b«Ø¥ß·s¸ê®Æ®w¤§«á¥ß§Y³z¹LdmSQL©ÎDBMaker¸ê®Æ®wºÞ²z­û¤u¨ã¨Ó³]©wSYSADMªº±K½X¡C

  1. ¿ï¾Ü¥\¯àªí¤¤ªº¡i¸ê®Æ®wà ±Ò°Ê/Ãö³¬¡j¿ï¶µ¡A·|¥X²{¡§±Ò°Ê/Ãö³¬¸ê®Æ®w¡¨ªº¹ï¸Ü¤è¶ô¡C

  1. ±q¡§¸ê®Æ®w¦WºÙ¡¨¤U©Ô¦¡¿ï³æ¤¤¿ï¾Ü±z­n±Ò°Êªº¸ê®Æ®w¡C
  2. ¦b¡§¨Ï¥ÎªÌID¡¨¤Î¡§±K½X¡¨Äæ¦ì¤¤¿é¤J¨Ï¥ÎªÌ¦WºÙ¤Î±K½X¡C

4.ÂI¨ú¹ï¸Ü¤è¶ô¤¤ªº¡u±Ò°Ê¡v«ö¶s¡A·|¥X²{¡§±Ò°Ê¸ê®Æ®w¦¨¥\¡I¡¨ªº°T®§¤è¶ô¡C

5.ÂI¨ú°T®§¤è¶ô¤Wªº¡u½T©w¡v«ö¶s¡C

Ãö³¬¦øªA¾¹(dmSQL)

§Q¥Îdmsql³s¤W¸ê®Æ®w«á¡A¨Ï¥Î¤U¦Csq l«ü¥O¨ÓÃö³¬¸ê®Æ®w¦øªA¾¹¡C

TERMINATE dbname

Ãö³¬¸ê®Æ®w¦øªA¾¹(Server Manager)

  1. ¿ï¾Ü¥\¯àªí¤¤ªº¡i¸ê®Æ®wà ±Ò°Ê/Ãö³¬¡j¿ï¶µ¡A·|¥X²{¡§±Ò°Ê/Ãö³¬¸ê®Æ®w¡¨ªº¹ï¸Ü¤è¶ô¡C
  2. ±q¡§¸ê®Æ®w¦WºÙ¡¨¤U©Ô¦¡¿ï³æ¤¤¿ï¾Ü±z­nÃö³¬ªº¸ê®Æ®w¡C
  3. ¦b¡§¨Ï¥ÎªÌID¡¨¤Î¡§±K½X¡¨Äæ¦ì¤¤¿é¤J¨Ï¥ÎªÌ¦WºÙ¤Î±K½X¡C
  4. ÂI¨ú¡u±Ò°Ê¡v«ö¶s¡A·|¥X²{¤@°T®§¤è¶ôÅã¥Ü¬O§_Ãö³¬¦¨¥\¡C
    1. Äæ¦ì«¬ºA»¡©ú

      ¸ê®Æªø«×

      ½d³ò

      ªø«×

      CHAR(n)

      1 £ n £ 3992

      blank padding

      ©T©wªø«×

      n bytes

      VARCHAR(n)

      1 £ n £ 3992

      ¥iÅܪø«×

      ¨Ì¹ê»Ú¸ê®Æªø«×

      BINARY(n)

      1 £ n £ 3992

      n bytes

      SMALLINT

      -32768 ~ 32767

      2 bytes

      INTEGER

      -231 ~ 231-1

      4 bytes

      FLOAT

      ¡@

      4 bytes

      DOUBLE

      ¡@

      8 bytes

      DATE

      1900/01/01 ~

      4 bytes

      TIME

      ’ (second )

      4 bytes

      TIMESTAMP

      ·L¬í (micro-second)

      11 bytes

      DECIMAL(p,s)

      1 £ p £ 17, 0 £ s £ p

      é (p+1)/2ù +2 bytes

      SERIAL(n)

      -231 £ n £ 231-1

      ¦Û°Ê¼W¥[

      4 bytes

      LONG VARCHAR

      0 ~ 2G bytes

      ¡@

      LONG VARBINARY

      0 ~ 2G bytes

      ¡@

      FILE

      80 bytes

      20 bytes

      OID

      fn.pn.sn

      8 bytes

    2. ªí®æ¾Þ§@

      «Ø¥ßªí®æ

      »yªk¡G

      CREATE [TEMPORARY] TABLE table_name

      ( column_definition [, {next_column_definition}...] )

      [IN tablespace_name]

      [CHECK table_constraint]

      [LOCK MODE {PAGE|TABLE|ROW}]

      [FILLFACTOR fill_value] [NOCACHE]

      ½d¨Ò¡G

      CREATE TABLE S (

      2>S# CHAR(5) NOT NULL,

      3> SNAME CHAR(20),

      4> STATUS INTEGER,

      5> CITY CHAR(15) );

      §R°£ªí®æ

      »yªk

      DROP TABLE tablename

      ·s¼WÄæ¦ì

      ALTER TABLE table_name ADD column_definition

      [give_opt] [column_sequence]

      give_opt = GIVE {literal | NULL | builtin-function |SEQUENTIAL}

      column_sequence = {BEFORE column-name

      | AFTER column-name}

      §ó§ïªí®æµ²ºc

      »yªk¡G

      ALTER TABLE table_name MODIFY modify_column_definition

      modify_column_definition =

      { column-name NAME TO new-column-name

      | column-name TYPE TO data-type

      | column-name NULL TO NOT NULL give-opt

      | column-name DEFAULT TO default-val

      | column-name CONSTRAINT TO CHECK expression

      | column-name column-sequence

      | column-name DROP DEFAULT

      | column-name DROP CONSTRAINT

      |column-name TO column-definition [give-opt][column-sequence]}

      ½d¨Ò¡G

      ALTER TABLE employee MODIFY name TYPE TO CHAR(10);

    3. ¸ê®Æ¦s¨ú

      ´¡¤J¸ê®Æ(insert )

      »yªk¡G

      INSERT INTO table_name[(column_list)]

      VALUES (values_list)

      ½d¨Ò¡G

      dmSQL> INSERT INTO S VALUES ('S1','¥v±K´µ',20,'­Û´°');

      1 rows inserted

      dmSQL> INSERT INTO S VALUES ('S2','±j´µ',10,'¤Ú¾¤');

      1 rows inserted

      dmSQL> INSERT INTO S VALUES ('S3','¥¬µÜ§J',30,'¤Ú¾¤');

      1 rows inserted

      dmSQL> INSERT INTO P(P#,CITY,WEIGHT)

      2> VALUES ('P7','¶®¨å',24);

      1 rows inserted

      ¡@

      ¸ê®Æ§ó·s(update)

      »yªk¡G

      UPDATE table_name

      SET column_name = expression [, column_name = expr ...]

      [WHERE clause ]

      ½d¨Ò¡G

      dmSQL> UPDATE S SET STATUS=35 WHERE S#='S5';

      1 rows updated

      dmSQL> UPDATE P SET COLOR='¶À', WEIGHT=WEIGHT+5 WHERE P#='P2';

      1 rows updated

      dmSQL> UPDATE S SET STATUS=STATUS*2 WHERE CITY='­Û´°';

      2 rows updated

      ¡@

      ¸ê®Æ§R°£(delete)

      »yªk¡G

      DELETE FROM table_name [WHERE clause ]

      ½d¨Ò¡G

      dmSQL> DELETE FROM S WHERE S#='S5';

      1 rows deleted

      ¸ê®Æ¬d¸ß(select)

      »yªk¡G

      SELECT [ALL|DISTINCT] select_list

      [INTO table_name]

      FROM table_list

      [WHERE clause]

      [ORDER BY clause]

      [GROUP BY clause]

      [HAVING clause]

      [FOR BROWSE]

      ½d¨Ò¡G

      dmSQL> SELECT * FROM S;

      dmSQL> SELECT P#,CITY,COLOR FROM P;

      dmSQL>SELECT S# AS '¨Ñ_½s¸¹', STATUS FROM S;

      dmSQL> SELECT S#,STATUS,SQRT(STATUS)*10,

      2> ROUND(SQRT(STATUS)*10) FROM S;

      dmSQL> SELECT S#,STATUS FROM S WHERE CITY='¤Ú¾¤';

      dmSQL> SELECT * FROM SP

      2> WHERE QTY BETWEEN 300 AND 400;

      dmSQL> SELECT P#,PNAME,CITY FROM P

      2> WHERE CITY NOT IN ('­Û´°','ù°¨');

      dmSQL> SELECT S#,STATUS FROM S WHERE CITY='¤Ú¾¤'

      2> ORDER BY STATUS DESC;

      ¡@

    4. DBMaker¥þ¤åÀ˯Á¨ç¼Æ

HIGHLIGHT

»yªk:

HIGHLIGHT(text long varchar, BoolPatn varchar(512), sensitive int, PreTag varchar(100), EndTag Varchar(100) ) return long varchar.

parameter

type

Description

IN

text

LVC

source text

BoolPatn

CHAR

match pattern (can be Boolean expression pattern)

sensitive

INT

whether sensitive match

PreTag

CHAR

tag before pattern, NULL denote none

EndTag

CHAR

tag after pattern, NULL denote none

OUT

BLOB

text after highlighting the patterns

»¡©ú:

§ä¥X¨ãÀ˯ÁÃöÁä¦rªº¤å³¹¡A¨Ã¦bÀ˯ÁÃöÁä¦rªº«e«á¦Û°Ê¥[¤W«ü©wªº¤å¦r¡C

½d¨Ò¡G

§ä¥XcontentÄæ¦ì¤¤¦³Intel©ÎAMDªº¤å³¹¡A¨Ã±NIntel©ÎAMD¥Î¬õ¦â¼Ð¥Ü¡C

select highlight(content,¡¦Intel | AMD¡¦,0,¡¦<Font color="#FF0000">¡¦,¡¦</Font>¡¦) from news where content match ¡¦Intel | AMD¡¦;

HITCOUNT

»yªk¡G

HITCOUNT(text long varchar, BoolPatn VARCHAR(512), sensitive int) return int.

parameter

type

Description

IN

text

LVC

source text

BoolPatn

CHAR

match pattern (can be Boolean expression pattern)

sensitive

INT

whether sensitive match

OUT

INT

appearance times of search pattern

»¡©ú¡G

­pºâ¤å³¹¤¤¸ÓÀ˯ÁÃöÁä¦r¥X²{ªº¦¸¼Æ¡C

½d¨Ò¡G

select

hitcount(content,'Intel|AMD',0), highlight(content,'Intel|AMD',0,¡¥<Font color="#FF0000">¡¦,¡¦</Font>¡¦) from news where content match 'Intel|AMD' order by 1;

HITPOS

»yªk¡G

HITPOS(text long varchar, BoolPatn varchar(512), sensitive int, n int, RetType int) return int

parameter

type

description

IN

text

LVC

source text

BoolPatn

CHAR

match pattern (can be Boolean expression pattern)

sensitive

INT

whether sensitive match

n

INT

the n-th pattern (start at 1),

at most, n could be 10000 (MaxPosPtn)

RetType

INT

return position type

0: begin offset (default setting)

1: end offset

2: pattern length (endoff - begoff + 1)

3: begin offset (higer 24 bits) BINARY OR end offset (lower 8 bits)

OUT

INT

get position information of the n-th pattern found in text,

return 0 if n-th pattern is not found

»¡©ú¡G

§ä¥XÀ˯ÁÃöÁä¦r¦b¤å³¹¤¤¥X²{²Än¦¸ªº¦ì¸m¡C

½d¨Ò¡G

°²³]contentÄæ¦ì¤º®e¬°"a b A c"

HITPOS(content,'A', 1, 1, 0) = 5 ('A')

HITPOS(content,'A&B' 0, 2, 0) = 3 ('b')

HITPOS(content,'a|b|c', 0, 3, 0) = 5 ('A')

HITPOS(content,'!a&c' 0, 1, 0) = 7 ('c')

BLOBLEN

»yªk¡G

BLOBLEN (object long varbinary) return int

parameter

type

Description

IN

object

LVB

Source blob

OUT

INT

get blob type data length

»¡©ú¡G

­pºâ¬Y¤@­ÓBLOBÄæ¦ìªºªø«×¡C

½d¨Ò¡G

select bloblen(content) from news

HTMLTITLE

»yªk¡G

HTMLTITLE (text long varchar) return varchar(1000)

parameter

type

Description

IN

object

LVB

Source HTML data

OUT

varchar

Title string of HTML

»¡©ú¡G

§ä¥XHTML¤å³¹¤¤ªºTitle

½d¨Ò¡G

select htmltitle(content) from news

  1. PHP3+DBMaker
    1. ¨BÆJ»¡©ú

      ­n¼g¤@¤ä¦s¨ú¸ê®Æ®wªºµ{¦¡¡A²Ä¤@¥ó¨Æ±¡´N¬O³s±µ¨ì±zªº¸ê®Æ®w¡AµM«á°õ¦æ±zªºSQL«ü¥O¡A°õ¦æªº¤è¦¡¦³¤GºØ¡A²Ä¤@ºØ¬O¥ýPrepare±zªºSQL»yªk¡AµM«á¥i¥H¤@ª½­«ÂÐEXECUTE¡A²Ä¤GºØ¬OEXEC(PREPARE+EXECUTE)¡A¦b¨C¦¸°õ¦æ¤§«e¡A·|¦Û°Ê°µPREPAREªº°Ê§@¡C¦pªG¤@­ÓSQL«ü¥O±`±`°õ¦æ¡A«ØÄ³±z¥ýPREPARE¡A¦AEXECUTE¡A³o¼Ë´N¤£¥²¨C¦¸°õ¦æ®É³£­n­«°µPREPAREªº°Ê§@¡CSQL°õ¦æ§¹²¦¤§«á¡A·|±Nµ²ªG¦s¨ì¤@­ÓRESULT SET·í¤¤¡A¦bPHP3¤¤¡A±z¥i¥H¥Î¤@­ÓÅܼƥh±µ¶Ç¦^¨ÓªºRESULT¡AµM«á¦A¨Ï¥ÎODBC_RESULT,ODBC_FETCH_ROW,ODBC_FETCH_INTO..µ¥Functions±N¸ê®ÆÅã¥Ü¥X¨Ó¡C

      ª`·N¡G­Y±z­n¨Ï¥ÎPHP3³s±µ¦Ü¸ê®Æ®w,½Ð±N±zªºDmconfig.ini©ñ¸m¦b~dbmaker/data¥Ø¿ý¤U¡C

    2. ³s±µ¸ê®Æ®w

      ODBC_CONNECT

      »yªk¡G

      int odbc_connect(string dsn, string user, string password);

      »¡©ú¡G³s±µ¨ì¸ê®Æ®w¡A¦pªG³s±µ¦¨¥\¡A¶Ç¦^³s±µªºconnect id(integer)¡A¥¢±Ñ«h¶Ç¦^0¡C

      ODBC_CLOSE

      »yªk¡G

      void odbc_close(int connection_id);

      »¡©ú¡GÃö³¬«ü©wªºconnection id¡A¦pªG¥Ø«eªºconnection¤¤¦³transaction¥¿¦b°õ¦æ¡A¦¹«ü¥O«KµLªk°õ¦æ¡C

      ODBC_CLOSEALL

      »yªk¡G

      void odbc_close_all(void);

      »¡©ú¡GÃö³¬©Ò¦³ªºconnection¡A¦pªGconnection¦³transaction¥¿¦b°õ¦æ¡AµLªk°õ¦æ¦¹«ü¥O¡C

      ¡@

      ½d¨Ò¡G

      <HTML>

      <TITLE>

      <HEAD>ODBC_CLOSE_ALL</HEAD>

      </TITLE>

      <body>

      <?

      $Cn=ODBC_connect("PHP3TEST","SYSADM","");

      $Cn1=ODBC_connect("EXDM30","SYSADM","");

      echo "Connected Cn and Cn1<P>";

      odbc_close_all();

      echo "CLOSE ALL<p>";

      $Rs=ODBC_EXEC($Cn,"Select * from TestSample");

      $Rs1=ODBC_EXEC($Cn1,"Select * from Card");

      if($Rs){echo "Cn Connection not Close<P>";}

      else{echo "Cn Connection Close<P>";}

      if($Rs1){echo "Cn1 Connection not Close<P>";}

      else{echo "Cn1 Connection Close<P>";}

      echo $HOME;

      ?>

      </body>

      ¡@

    3. ³]©w¥æ©ö³B²z

      ODBC_AUTOCOMMIT

      »yªk¡G

      int odbc_autocommit(int connection_id, int [OnOff])

      »¡©ú¡G³]©w¬Y¤@connection id¤¤ªºtransaction¬O§_¬°¦Û°Êcommit¡A·íOnOff¬°true®É¡Aªí¥Ü¸Óconnection¤¤ªº©Ò¦³«ü¥O¬Ò¬°autocommit¡C

      ODBC_COMMIT

      »yªk¡G

      int odbc_commit(int connection_id)

      »¡©ú¡Gcommit ©Ò«ü©wconnection¤¤°õ¦æªºtransaction¡C¦¨¥\¶Ç¦^True,¥¢±Ñ¶Ç¦^False¡C

      ODBC_ROLLBACK

      »yªk¡G

      int odbc_rollback(int connection_id)

      »¡©ú¡G¦^´_©Ò©wªºconnection¤¤ªºtransaction¡A¦¨¥\¶Ç¦^True,¥¢±Ñ¶Ç¦^False¡C

      ½d¨Ò¡G

      <HTML>

      <HEAD>

      <TITLE><h1>Test AutoCommit Execute Time <h1></TITLE>

      </HEAD>

      <BODY>

      <?

      $conn=ODBC_CONNECT("PHP3TEST","SYSADM","");

      if ($conn){

      if(ODBC_EXEC($conn,"Create table T1(c1 int,c2 char(10))")) {

      ODBC_AUTOCOMMIT($conn,1);

      ¡@¡@¡@¡@¡@//do some insert

      ODBC_AUTOCOMMIT($conn,0);

      //do some insert

      }

      ODBC_EXEC($conn,"Drop table T1");

      ODBC_COMMIT($conn);

      }

      ODBC_CLOSE($conn);

      ?>

      </BODY>

      </HTML>

      ¡@

    4. °õ¦æSQL«ü¥O

      ODBC_PREPARE

      »yªk¡G

      int odbc_prepare(int connection_id, string query_string)

      »¡©ú¡G·Ç³Æ§Y±N­n°õ¦æªºSQL«ü¥O¡A¦pªG¦¨¥\¡A¶Ç¦^¤@­Óresult identifierªºid¡A³o­Óresult identifier¤§«á¥i¥H¨Ï¥ÎODBC_EXECUTE¨Ó°õ¦æ¡C

      ODBC_EXECUTE

      »yªk¡G

      int odbc_execute(int result_id, array [parameters_array])

      »¡©ú¡G°õ¦æ¤@­ÓODBC_PREPARE§¹«áªºSQL«ü¥O¡A¦pªG¦¨¥\¡A¶Ç¦^True¡A¥¢±Ñ¶Ç¦^False¡A¦pªG¤§«ePREPAREªºSQL«ü¥O»Ý­nµ¹°Ñ¼Æ¡A¨Ï¥Îarray[parameters_array]¡C

      ODBC_EXEC

      »yªk¡G

      int odbc_exec(int connection_id, string query_string)

      »¡©ú¡GPREPARE¤Î°õ¦æSQL«ü¥O¡Aµ¥©ó¤§«eªºODBC_PREPARE+ODBC_EXECUTE¡A°õ¦æ¦¨¥\¶Ç¦^True¡A¥¢±Ñ¶Ç¦^False¡C

      ODBC_DO

      »yªk¡G

      string odbc_do(int conn_id, string query)

      »¡©ú¡G»PODBC_EXEC¬Û¦P

      ¡@

      ½d¨Ò¡G

      <HTML>

      <HEAD>

      </HEAD>

      <BODY>

      <?

      $conn=ODBC_connect("PHP3TEST","SYSADM","");

      if($conn)

      {

      $res=odbc_prepare($conn,"insert into TestODBC values(?,?,?)");

      $param[0]=3;

      $param[1]="test";

      $param[2]="insert";

      odbc_execute($res,$param);

      odbc_free_result($res);

      $res=odbc_EXEC($conn,"select * from TestODBC");

      echo "insert a row (1,test,insert) into table";

      echo odbc_result_all($res);

      odbc_free_result($res);

      odbc_close($conn);

      }

      ?>

      </BODY>

      </HTML>

      ¡@

    5. Â^¨ú¸ê®Æ

ODBC_CURSOR

»yªk¡G

string odbc_cursor(int result_id);

»¡©ú¡G¨ú±o¤@­ÓCURSORNAME¡A¦pªG¦¨¥\¡A·|°w¹ï«ü©wªºreuslt_id¶Ç¦^¤@­ÓCURSOR NAME¡C

½d¨Ò

<HTML>

<HEAD>

<TITLE>ODBC FUNCTION TEST</TITLE>

</HEAD>

<BODY>

<h5>Test Cursor of deleting odd records and update even records c2char to 'handy'</h5>

<?

$conn=odbc_connect("PHP3TEST","SYSADM","");

if($conn)

{

Error_Reporting(0);

odbc_exec($conn,"drop table PHP3CURSOR");

odbc_exec($conn,"Create table PHP3CURSOR(c1Int int ,c2Char char(10))");

for($i=0;$i < 50;$i++)

{

$resexec=odbc_exec($conn,"insert into PHP3CURSOR values($i,'Test')");

ODBC_COMMIT($conn);

odbc_free_result($resexec);

}

$res=odbc_exec($conn,"select * from PHP3CURSOR");

echo odbc_result_all($res),"rows<p><p>";

odbc_free_result($res);

$res=odbc_exec($conn,"select * from PHP3CURSOR for update of c2Char");

$Cursor=odbc_cursor($res);

$CurUpdate=odbc_prepare($conn,"update PHP3CURSOR set c2Char=? where current of $Cursor");

$CurDelete=odbc_prepare($conn,"Delete from PHP3CURSOR where current of $Cursor");

if($CurUpdate and $CurDelete)

{

while(odbc_fetch_row($res))

{

if(odbc_result($res,1)%2==0)

{

$str=chop(odbc_result($res,2)) . "*";

$param[0]=$str;

odbc_execute($CurUpdate,$param);

}

else

{

odbc_execute($CurDelete);

}

odbc_commit($conn);

}

}

odbc_free_result($res);

$res=odbc_exec($conn,"select * from PHP3CURSOR");

echo odbc_result_all($res),"rows<p><p>";

odbc_free_result($res);

odbc_close($conn);

}

?>

</BODY>

</HTML>¡G

ODBC_RESULT_ALL

»yªk¡G

int odbc_result_all(int result_id, string [format])

»¡©ú¡G±N¥Ø«eªºRESULT SET ¥HHTMLªºªí®æ§Î¦¡Åã¥Ü¥X¨Ó¡Aodbc_result_all·|¦L¥X¥HODBC_EXEC²£¥Íªºresult id ¤¤ªº©Ò¦³¸ê®Æ¡C

½d¨Ò¡G

<HTML>

<HEAD>

<TITAL><H1>TEST ODBC FUNCTION</H1></TITAL>

</HEAD>

<BODY>

<?

$CONN=ODBC_CONNECT("PHP3TEST","SYSADM","");

IF($CONN)

{

$RES=ODBC_EXEC($CONN,"SELECT * FROM TestODBC");

$STRRS=ODBC_RESULT_ALL($RES);

ECHO $STRRS;

ECHO "¦æ¸ê®Æ";

}

?>

</BODY>

</HTML>

ODBC_FETCH_INTO

»yªk¡G

int odbc_fetch_into(int result_id, int [rownumber], array result_array)

»¡©ú¡GFETCH¤@µ§¸ê®Æ¨ì¤@­Óarray¤¤¡A¦¨¥\«h¶Ç¦^¸Óµ§¸ê®Æ¦bresult set¤¤ªº¦ì¸m¡A¥¢±Ñ¶Ç¦^False¡C¥Î¨Ó±µ¦¬­Èªºarray¥²¶·¨Ï¥ÎPASSING BY REFERENCEªº¤è¦¡¨Ó±µ¦¬¶Ç¦^¨Óªº¸ê®Æ¡Aarrayªºindex±q0¶}©l¡C

½d¨Ò¡G

<HTML>

<TITLE>

<HEAD>ODBC_fetch_into,ODBC_fetch_row</HEAD>

</TITLE>

<body>

<?

$Cn=ODBC_connect("PHP3TEST","SYSADM","");

if($Cn)

{

$Rs=odbc_exec($Cn,"select * from TestODBC");

$Colnum=odbc_num_fields($Rs);

while(odbc_fetch_into($Rs,&$Str))

{

for($i=0;$i<3;$i++)

{

echo $Str[$i] , "===== ";

}

echo "<P>";

}

}

?>

</body>

</HTML>

ODBC_FETCH_ROW

»yªk¡G

int odbc_fetch_row(int result_id, int [row_number])

»¡©ú¡G¤@¦¸FETCH¤@µ§¸ê®Æ¡AODBC_FETCH_ROW¥i¥Hfetch¸g¥ÑODBC_DO©ÎODBC_EXEC²£¥Íresult set¤¤ªº¸ê®Æ¡A¦pªG¨S¦³«ü©wrow_number¡AODBC_FETCH_ROW·|fetch¤U¤@µ§¸ê®Æ¡C

ODBC_RESULT

»yªk¡G

string odbc_result(int result_id, mixed field)

»¡©ú¡G¨ú±o¤@µ§¸ê®Æ¤¤ªº¬Y¤@­ÓÄæ¦ì­È¡Amixed filed¥i¥H¬OÄæ¦ì¦WºÙ©Î¬OÄæ¦ì¦ì¸m,Äæ¦ì¦ì¸m±q1¶}©l¡C

ODBC_RUM_ROWS

»yªk¡G

int odbc_num_rows(int result_id);

»¡©ú¡G¨ú±oRESULT SET¤¤¦@¦³´Xµ§¸ê®Æ¡A¦pªGSQL¬°insert¡Bupdate¡Bdelete¡A¶Ç¦^ªº¬O¼vÅTªºµ§¼Æ¡A¦pªG¬°select¡A¶Ç¦^ªº¬Oselectªºµ§¼Æ¡C¤j³¡¥÷ªºdatabase¡A¦bselect ¤§«á¡AµLªk¨Ï¥ÎODBC_RUM_ROWS¨Ó¨ú±oselectªºµ§¼Æ¡C

ODBC_NUM_FIELDS

»yªk¡G

int odbc_num_fields(int result_id)

»¡©ú¡G¨ú±oRESULT SETÄæ¦ìªº¼Æ¥Ø

DOBC_FIELD_NUM

»yªk¡G

int odbc_fieldnum(int result_id, string field_name)

»¡©ú¡G¶Ç¦^«ü©wªºÄæ¦ì¦bRESULT SET¤¤±Æ§Çªº¦ì¸m

ODBC_FIELD_NAME

»yªk¡G

string odbc_fieldname(int result_id, int field_number)

»¡©ú¡G¶Ç¦^RESULT SET¤¤²Äfield_number­ÓÄæ¦ìªºÄæ¦ì¦WºÙ

ODBC_FIELD_TYPE

»yªk¡G

string odbc_field_type(int result_id, mixed field)

»¡©ú¡G¶Ç¦^RESULT SET¤¤¬Y¤@­ÓÄæ¦ìªºÄæ¦ì«¬ºA¡C

ODBC_FREE_RESULT

»yªk¡G

int odbc_free_result(int result_id)

»¡©ú¡GÃö³¬RESULT SET

¡@

½d¨Ò¡G

<HTML>

<head>

<title>hanly test</title>

</head>

<BODY>

<h5>DBMaker Test</h5>

<?

if(isset($dbuser))

{

$conn=odbc_connect($dsn,$dbuser,$dbpwd);

if (!$conn)

{;

?><h5> Can't connect to Database</h5><?

}

else

{

?><h5>connect to database success!!!</h5><?

$res=ODBC_EXEC($conn,"select * from TestODBC");

$numfields=odbc_num_fields($res);

?><p><p><p><p><?

?><table><tr><td><h5>number of row</h5></td><?

for($jnum=1;$jnum<=$numfields;$jnum++)

{

$str=odbc_field_name($res,$jnum);

?><td><h5><?echo $str ?></h5></td><?

}

?></tr><tr><?

?><tr><td><h5></h5></td><?

for($jnum=1;$jnum<=$numfields;$jnum++)

{

$str=odbc_field_type($res,$jnum);

?><td><h5><?echo $str ?></h5></td><?

}

?></tr><tr><?

?><tr><td><h5></h5></td><?

for($jnum=1;$jnum<=$numfields;$jnum++)

{

$str=odbc_field_len($res,$jnum);

?><td><h5><?echo $str ?></h5></td><?

}

?></tr><tr><?

¡@

¡@

¡@

$num=0;

while(odbc_fetch_row($res))

{

$num++;

?><td><h5>row <? echo $num;?></h5></td><?

for($k=1;$k<=$numfields;$k++)

{

$str=odbc_result($res,$k);

?><td><h5><? echo $str ?></h5></td><?

}

?></tr><?

}

?><p></table><?

odbc_free_result($res);

odbc_close($conn);

}

}

else

{

?><form action=ODBC_Result.php3 method=post>

<table border=0>

<tr><td>Database (DSN): </td><td><input type=text name=dsn value="PHP3TEST"></td></tr>

<tr><td>User: </td><td><input type=text name=dbuser></td></tr>

<tr><td>Password: </td><td><input type=password name=dbpwd></td></tr>

</table>

<input type=submit value=connect>

<?

}

?>

</BODY>

[ Back To Manuals Index ]

Copyright 2002 SYSCOM Computer Engineering Co. All rights reserved.