]> granicus.if.org Git - php/commitdiff
Test scripts for ODBC added
authorAndreas Karajannis <kara@php.net>
Sun, 28 May 2000 12:50:19 +0000 (12:50 +0000)
committerAndreas Karajannis <kara@php.net>
Sun, 28 May 2000 12:50:19 +0000 (12:50 +0000)
tests/odbc-display.php [new file with mode: 0644]
tests/odbc-t1.php [new file with mode: 0644]
tests/odbc-t2.php [new file with mode: 0644]
tests/odbc-t3.php [new file with mode: 0644]
tests/odbc-t4.php [new file with mode: 0644]
tests/odbc-t5.php [new file with mode: 0644]

diff --git a/tests/odbc-display.php b/tests/odbc-display.php
new file mode 100644 (file)
index 0000000..f79a854
--- /dev/null
@@ -0,0 +1,19 @@
+<?php
+  if(($conn = odbc_connect($dsn, $dbuser, $dbpwd))){
+       if(($res = odbc_do($conn, "select gif from php_test where id='$id'"))){
+               odbc_binmode($res, 0);
+               odbc_longreadlen($res, 0);
+               if(odbc_fetch_row($res)){
+                       header("content-type: image/gif");
+                       odbc_result($res, 1);
+                       exit;
+               }else{
+                       echo "Error in odbc_fetch_row";
+               }
+       } else {
+               echo "Error in odbc_do";
+       }
+  } else {
+       echo "Error in odbc_connect";
+  }
+?>
diff --git a/tests/odbc-t1.php b/tests/odbc-t1.php
new file mode 100644 (file)
index 0000000..90cb979
--- /dev/null
@@ -0,0 +1,38 @@
+<HTML>
+<HEAD>
+<TITLE>Quick &amp; dirty ODBC test</TITLE>
+</HEAD>
+<BODY>
+<H1>ODBC Test 1 - Connection</H1>
+<?php
+  if(isset($dbuser)){
+       echo "Connecting to $dsn as $dbuser\n<P>";
+       $conn = odbc_connect($dsn,$dbuser,$dbpwd);
+       if(!$conn){
+?>
+<H2>Error connecting to database! Check DSN, username and password</H2>
+<?php
+    }else{
+?>
+<H2>Connection successful</H2>
+<A HREF="odbc-t2.php<?php echo "?dbuser=$dbuser&dsn=$dsn&dbpwd=$dbpwd" ?>">Proceed to next test</A>
+| <A HREF="<?php echo $PHP_SELF ?>">Change login information</A>
+<?php
+    }
+} else {
+?>
+<EM>You will need permisson to create tables for the following tests!</EM>
+<form action=odbc-t1.php method=post>
+<table border=0>
+<tr><td>Database (DSN): </td><td><input type=text name=dsn></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>
+<br>
+<input type=submit value=connect>
+
+</form>
+<?php 
+} ?>
+</BODY>
+</HTML>
diff --git a/tests/odbc-t2.php b/tests/odbc-t2.php
new file mode 100644 (file)
index 0000000..a500b09
--- /dev/null
@@ -0,0 +1,82 @@
+<HTML>
+<HEAD>
+<TITLE>Quick &amp; dirty ODBC test #2</TITLE>
+</HEAD>
+<BODY>
+<H1>ODBC Test 2 - Create table</H1>
+<?php
+  if(isset($dbuser)){
+       echo "Connecting to $dsn as $dbuser\n";
+       $conn = odbc_connect($dsn,$dbuser,$dbpwd);
+       if(!$conn){
+?>
+<H2>Error connecting to database! Check DSN, username and password</H2>
+<?php
+       }else{
+?>
+- OK<p>
+Dropping table "php3_test"
+<?php
+               Error_Reporting(0);
+               $res = odbc_exec($conn,"drop table php_test");
+               if($res){
+                       odbc_free_result($res);
+               }
+?>
+- OK<p>
+Create table "php_test"
+<?php
+               error_reporting(1);
+               $res = odbc_exec($conn, 'create table php_test (a char(16), b integer, c float, d varchar(128))');
+               if($res){
+                       odbc_free_result($res);
+?>
+ - OK<p>
+Table Info:<br>
+<table>
+ <tr>
+  <th>Name</th>
+  <th>Type</th>
+  <th>Length</th>
+ </tr>
+<?php
+                       $info = odbc_exec($conn,"select * from php_test");
+                       $numfields = odbc_num_fields($info);
+
+                       for($i=1; $i<=$numfields; $i++){
+?>
+ <tr>
+  <td><?php echo odbc_field_name($info, $i) ?></td>
+  <td><?php echo odbc_field_type($info, $i) ?></td>
+  <td><?php echo odbc_field_len($info,$i) ?></td>
+ </tr>
+<?php
+                       }
+?>
+</table>
+<P>
+<HR width=50%">
+<P>
+<A HREF="odbc-t3.php<?php echo "?dbuser=$dbuser&dsn=$dsn&dbpwd=$dbpwd" ?>">Proceed to next test</A> 
+| <A HREF="<?php echo $PHP_SELF; ?>">Change login information</A>
+
+<?php
+               }
+       }
+  } else {
+?>
+
+<form action="odbc-t3.php" method=post>
+<table border=0>
+<tr><td>Database (DSN): </td><td><input type=text name=dsn></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="Continue">
+</form>
+
+<?php 
+  } 
+?>
+</BODY>
+</HTML>
diff --git a/tests/odbc-t3.php b/tests/odbc-t3.php
new file mode 100644 (file)
index 0000000..edfdc65
--- /dev/null
@@ -0,0 +1,95 @@
+<HTML>
+<HEAD>
+<TITLE>Database test #3</TITLE>
+</HEAD>
+<BODY>
+<H1>ODBC Test 3 - Insert records</H1>
+<?php
+  if(isset($dbuser)){
+       echo "Connecting to $dsn as $dbuser\n";
+       $conn = odbc_connect($dsn,$dbuser,$dbpwd);
+       if(!$conn){
+?>
+<H2>Error connecting to database! Check DSN, username and password</H2>
+<?php
+       }else{
+?>
+ - OK<p>
+Clearing table "php_test"
+<?php
+               error_reporting(0);
+               $res=odbc_exec($conn,"delete from php_test");
+               odbc_free_result($res);
+               error_reporting(1);
+?>
+ - OK<p>
+Inserting into table "php_test"
+<?php
+               $sqlfloat = '00.0';
+               $sqlint = 1000;
+               $stmt = odbc_prepare($conn, "insert into php_test values(?,?,?,?)");
+               for($i=1; $i<=5; $i++){
+                       $values[0] = "test-$i";
+                       $values[1] = $sqlint + $i;
+                       $values[2] = $i . $sqlfloat . $i;
+                       $values[3] = "php - values $i";
+                       $ret = odbc_execute($stmt, &$values);
+               }
+               odbc_free_result($stmt);
+               $res = odbc_exec($conn, "select count(*) from php_test");
+               if($res && (odbc_result($res, 1) == 5)){
+                       odbc_free_result($res);
+?>
+ - OK<p>
+<H3>The table "php_test" should now contain the following values:</H3>
+<table>
+ <tr>
+  <th>A</th><th>B</th><th>C</th><th>D</th>
+ </tr>
+ <tr>
+  <td>test-1</td><td>1001</td><td>100.01</td><td>php - values 1</td>
+ </tr>
+ <tr>
+  <td>test-2</td><td>1002</td><td>200.02</td><td>php - values 2</td>
+ </tr>
+ <tr>
+  <td>test-3</td><td>1003</td><td>300.03</td><td>php - values 3</td>
+ </tr>
+ <tr>
+  <td>test-4</td><td>1004</td><td>400.04</td><td>php - values 4</td>
+ </tr>
+ <tr>
+  <td>test-5</td><td>1005</td><td>500.05</td><td>php - values 5</td>
+ </tr>
+</table>
+
+<H3>Actual contents of table "php_test":</H3>
+<?php
+                       $res = odbc_exec($conn, "select * from php_test");
+                       odbc_result_all($res);
+               }
+?>
+<p>
+ <HR width="50%">
+<p>
+<A HREF="odbc-t4.php?dbuser=<?php echo "$dbuser&dsn=$dsn&dbpwd=$dbpwd" ?>">Proceed to next test</A>
+| <A HREF="<?php echo $PHP_SELF ?>">Change login information</A>
+<?php
+       }
+  } else {
+?>
+<form action=odbc-t3.php method=post>
+<table border=0>
+ <tr><td>Database: </td><td><input type=text name=dsn></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>
+
+</form>
+<?php
+  } 
+?>
+</BODY>
+</HTML>
+
diff --git a/tests/odbc-t4.php b/tests/odbc-t4.php
new file mode 100644 (file)
index 0000000..10e8f4b
--- /dev/null
@@ -0,0 +1,91 @@
+<HTML>
+<HEAD>
+<TITLE>Database test #4</TITLE>
+</HEAD>
+<BODY>
+<H1>ODBC Test 4 - Cursors</H1>
+<em>The following test requires your ODBC driver to support positioned updates</em><p>
+<?php
+  if(isset($dbuser)){
+       echo "Connecting to $dsn as $dbuser\n";
+       $conn = odbc_connect($dsn,$dbuser,$dbpwd);
+       if(!$conn){
+?>
+<H2>Error connecting to database! Check DSN, username and password</H2>
+<?php
+       }else{
+?>
+ - OK<p>
+Updating table "php_test"
+<?php
+               odbc_autocommit($conn, 0);
+               if(($result = odbc_do($conn, 'select * from php_test where b>1002 for update'))){
+                       $cursor = odbc_cursor($result);
+                       if(($upd = odbc_prepare($conn,"update php_test set a=?, b=? where current of $cursor"))){
+                               while(odbc_fetch_row($result)) {
+                                       $params[0] = odbc_result($result, 1) . "(*)";
+                                       $params[1] = odbc_result($result, 2) + 2000;
+                                       odbc_execute($upd, $params);
+                               }
+                               odbc_commit($conn);
+                       }
+               }
+               if($result && $upd){
+?>
+ - OK<p>
+<H3>The table "php_test" should now contain the following values:</H3>
+<table>
+ <tr>
+  <th>A</th><th>B</th><th>C</th><th>D</th>
+ </tr>
+ <tr>
+  <td>test-1</td><td>1001</td><td>100.01</td><td>php3 - values 1</td>
+ </tr>
+ <tr>
+  <td>test-2</td><td>1002</td><td>200.02</td><td>php - values 2</td>
+ </tr>
+ <tr>
+  <td>test-3(*)</td><td>3003</td><td>300.03</td><td>php - values 3</td>
+ </tr>
+ <tr>
+  <td>test-4(*)</td><td>3004</td><td>400.04</td><td>php - values 4</td>
+ </tr>
+ <tr>
+  <td>test-5(*)</td><td>3005</td><td>500.05</td><td>php - values 5</td>
+ </tr>
+ <tr>
+  <td colspan=4>
+  <small><em><strong>Note:</strong> If you reload this testpage,<br>
+  the three last rows will contain different<br>values in columns A and B</em></small>
+  </td>
+ </tr>
+</table>
+
+<H3>Actual contents of table "php_test":</H3>
+<?php
+                       $res = odbc_exec($conn,"select * from php_test");
+                       odbc_result_all($res);
+               }else{
+                       echo "Your driver obviously doesn't support positioned updates\n<p>";
+               }
+?>
+<p><HR width="50%"><p>
+<A HREF="odbc-t5.php?dbuser=<?php echo "$dbuser&dsn=$dsn&dbpwd=$dbpwd"; ?>">Proceed to next test</A>
+<?php
+       }
+} else {
+?>
+<form action=odbc-t4.php method=post>
+<table border=0>
+<tr><td>Database: </td><td><input type=text name=dsn></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>
+
+</form>
+<?php 
+  }
+?>
+</BODY>
+</HTML>
diff --git a/tests/odbc-t5.php b/tests/odbc-t5.php
new file mode 100644 (file)
index 0000000..13af52d
--- /dev/null
@@ -0,0 +1,137 @@
+<HTML>
+<HEAD>
+<TITLE>Database test #5</TITLE>
+</HEAD>
+<BODY>
+<H1>ODBC Test 5 - Blobs</H1>
+<?php
+  if(!isset($gif1file) && !isset($display) || 
+               ($gif1file == "none" && $gif2file == "none" 
+                && $gif3file == "none")){
+?>
+<H2>Please select the images (gif) you want to put into the database</H2>
+<FORM METHOD="POST" ACTION="<?php echo $PHP_SELF ?>" ENCTYPE="multipart/form-data">
+Image 1: <INPUT TYPE="file" NAME="gif1file" VALUE="" SIZE="48"><P>
+Image 2: <INPUT TYPE="file" NAME="gif2file" VALUE="" SIZE="48"><P>
+Image 3: <INPUT TYPE="file" NAME="gif3file" VALUE="" SIZE="48"><P>
+Blob database type name: <INPUT  TYPE="text" NAME="datatype" VALUE="LONG BYTE" SIZE="32">
+<P>
+<INPUT  TYPE="hidden"  name="dsn" value="<?php echo $dsn ?>">
+<INPUT  TYPE="hidden"  name="dbuser" value="<?php echo $dbuser ?>">
+<INPUT  TYPE="hidden"  name="dbpwd" value="<?php echo $dbpwd ?>">
+<INPUT  TYPE="submit"  VALUE="Send  File(s)">
+| <INPUT  TYPE="reset"  VALUE="reset">
+</FORM>
+</BODY>
+</HTML>
+<?php
+       exit;
+  }
+  if(isset($dbuser)){
+       echo "Connecting to $dsn as $dbuser\n";
+       $conn = odbc_connect($dsn, $dbuser, $dbpwd);
+       if(!$conn){
+?>
+<H2>Error connecting to database! Check DSN, username and password</H2>
+<?php
+       }else{
+?>
+ - OK<p>
+<?php
+               if(isset($display)){
+                       if(($res = odbc_exec($conn, 'select id from php_test'))){
+                               echo "<H3>Images in database</H3>";
+                               while(odbc_fetch_into($res, &$imgs)){
+                                       echo "$imgs[0] : <IMG SRC=\"odbc-display.php?id=$imgs[0]&dbuser=$dbuser&dsn=$dsn&dbpwd=$dbpwd\">\n<P>";
+                               }
+                       }else{
+                               echo "Couldn't execute query";
+                       }
+                       echo "\n</BODY>\n</HTML>";
+                       exit;
+               }
+?>
+Dropping table "php_test"
+<?php
+               Error_Reporting(0);
+               $res = odbc_exec($conn, "drop table php_test");
+               if($res){
+                       odbc_free_result($res);
+               }
+?>
+ - OK<p>
+Creating table "php_test":
+<?php
+               $res = odbc_exec($conn, "create table php_test (id char(32), gif $datatype)");
+               if($res){
+                       odbc_free_result($res);
+?>
+ - OK<p>
+Table Info:<br>
+<table>
+ <tr>
+  <th>Name</th>
+  <th>Type</th>
+  <th>Length</th>
+ </tr>
+<?php
+                       $info = odbc_exec($conn,"select * from php_test");
+                       $numfields = odbc_num_fields($info);
+
+                       for($i=1; $i<=$numfields; $i++){
+?>
+ <tr>
+  <td><?php echo odbc_field_name($info, $i) ?></td>
+  <td><?php echo odbc_field_type($info, $i) ?></td>
+  <td><?php echo odbc_field_len($info,$i) ?></td>
+ </tr>
+<?php
+            }
+                       odbc_free_result($info);
+?>
+</table>
+
+Inserting data:
+<?php
+                       echo "$gif1file - $gif2file - $gif3file";
+
+                       odbc_free_result($res);
+                       $res = odbc_prepare($conn, "insert into php_test values(?,?)");
+                       if($gif1file != "none"){
+                               $params[0] = "image1";
+                               $params[1] = "'$gif1file'";
+                               odbc_execute($res, $params);
+                       }
+                       if($gif2file != "none"){
+                               $params[0] = "image2";
+                               $params[1] = "'$gif2file'";
+                               odbc_execute($res, $params);
+                       }
+                       if($gif3file != "none"){
+                               $params[0] = "image3";
+                               $params[1] = "'$gif3file'";
+                               odbc_execute($res, $params);
+                       }
+?>
+ - OK<P>
+<A HREF="<?php echo "$PHP_SELF?display=y&dbuser=$dbuser&dsn=$dsn&dbpwd=$dbpwd" ?>">Display Images</A>
+<?php
+               }
+       }
+  } else {
+?>
+<form action=odbc-t5.php method=post>
+<table border=0>
+<tr><td>Database: </td><td><input type=text name=dsn></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>
+
+</form>
+<?php 
+  }
+?>
+</BODY>
+</HTML>