MySql C API Example - Called from PHP Script http://www.ousob.com --- Legacy Redefined
Intro PHP Script Text Produced HTML Produced XML Produced Run Text Run HTML Run XML q.sql mysql_c_api.c db_mysql.h Download


mysql_c_api.php - source

<?
if( !isset($action) ){
  
$action "";
}
switch(
$action){
  case 
"rt":
    
$cmd "cgi-bin/mysql_c_api.cgi ussss q.sql";
    
$rv  = `$cmd`;
    
header("Content-type: text/html\n\n");
    
printf("<pre>\n");
    
passthru("cgi-bin/mysql_c_api.cgi ussss q.sql");
    
printf("</pre>\n");
    die();
    break;
  case 
"rh":
    
header("Content-type: text/html\n\n");
    
passthru("cgi-bin/mysql_c_api.cgi ussss q.sql HTML");
    die();
    break;
  case 
"rx":
    
header("Content-type: text/xml\n\n");
    
passthru("cgi-bin/mysql_c_api.cgi ussss q.sql XML");
    die();
    break;
}


if( (
$action == "t" || $action == "h" || $action == "x" || $action == "q" || $action == "ts" || $action == "" || $action == "view_c" || $action == "view_h") ){
  echo <<< HT
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
  <html>
  <head>
  <title>MySql C API Example - OuSob</title>
  <meta name="author" content="Mike Massingill">
  <meta name="keywords" content="MySql C API Example,Called from PHP Script,Uses PHP backtics operator and passthru() function,g++,Linux,SUSE,Mike Massingill,OuSob">
  <meta name="description" content="MySql C API Example - Outputs text,HTML, and XML - Uses PHP backtics operator and passthru function">
  <link rel="stylesheet" href="infopop.css" content="text/plain" type="text/css">
  </head>
  <body>
  <center>
  <table class="soap" cellpadding="0" cellspacing="0" border="0" width="98%">
  <tr>
  <td align="left" valign="middle" colspan="6"><b>MySql C API Example - <font color="maroon">Called from PHP Script</font></b></td>
  <td align="right"  valign="top" colspan="6"><a href="http://www.ousob.com/"><img alt="http://www.ousob.com --- Legacy Redefined" border="0" src="http://www.ousob.com/sb_icons/cxutil.jpg"></a></td>
  </tr>
  </table>
  <table class="soap" cellpadding="0" cellspacing="0" border="1px" width="98%">
  <tr align="center">
  <td class="soap"><a title="Intro" href="http://www.ousob.com/mysql_c_api.php">Intro</a></td>
  <td class="soap"><a title="View This Script" href="mysql_c_api.php?action=ts">PHP Script</a></td>
  <td class="soap"><a title="View Text source produced by mysql_c_api.cgi" href="mysql_c_api.php?action=t">Text Produced</a></td>
  <td class="soap"><a title="View HTML source produced by mysql_c_api.cgi" href="mysql_c_api.php?action=h">HTML Produced</a></td>
  <td class="soap"><a title="View XML source produced by mysql_c_api.cgi" href="mysql_c_api.php?action=x" >XML Produced</a></td>
  <td class="soap"><a title="Run mysql_c_api.cgi with TEXT option" href="mysql_c_api.php?action=rt" target="rt">Run Text</a></td>
  <td class="soap"><a title="Run mysql_c_api.cgi with HTML option" href="mysql_c_api.php?action=rh" target="rh">Run HTML</a></td>
  <td class="soap"><a title="Run mysql_c_api.cgi with XML option" href="mysql_c_api.php?action=rx" target="rx">Run XML</a></td>
  <td class="soap"><a title="View q.sql" href="mysql_c_api.php?action=q">q.sql</a></td>
  <td class="soap"><a title="View mysql_c_api.c source code"  href="mysql_c_api.php?action=view_c">mysql_c_api.c</a></td>
  <td class="soap"><a title="View mysql_c_api.h source code"  href="mysql_c_api.php?action=view_h">db_mysql.h</a></td>
  <td class="soap"><a title="Download Binary and Source" href="xweb/mysql_c_api.zip">Download</a></td>
  </tr>
  </table>
  </center>
  <br><br>
HT;
}

switch(
$action){
  case 
"":
    
printf("<pre>");
    
printf("<b>mysql_c_api.cgi</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// NOT A CGI SCRIPT.&nbsp;&nbsp;I nameed it this so it would run on the web server\n");
    
printf("<font color=\"lightslategray\">\n");
    
printf("<b>\$cmd = \"cgi-bin/mysql_c_api.cgi ussss q.sql\";</b>\n");
    
printf("<font color=\"maroon\">or</font>\n");
    
printf("<b>\$cmd = \"cgi-bin/mysql_c_api.cgi ussss q.sql HTML\";</b>\n");
    
printf("<font color=\"maroon\">or</font>\n");
    
printf("<b>\$cmd = \"cgi-bin/mysql_c_api.cgi ussss q.sql XML\";</b>\n");
    
printf("\n<font color=\"blue\">\$rv  = `\$cmd`;</font>\n\n");
    
printf("<font color=\"maroon\">called using `backticks`</font>\n");
    
printf("PHP supports one execution operator: backticks (``).&nbsp;&nbsp;Note that these are not single-quotes!&nbsp;&nbsp;PHP will attempt to execute the\ncontents of the backticks as a shell command; the output will be returned (i.e., it won't simply be dumped to output; it can\nbe assigned to a variable).&nbsp;&nbsp;Use of the backtick operator is identical to shell_exec().\n");
    
printf("\n<font color=\"blue\">passthru(\$cmd);</font>\n\n");
    
printf("<font color=\"maroon\">called using passthru()</font>\n");
    
printf("The passthru() function is similar to the exec() function in that it executes a command.&nbsp;&nbsp;This function should be used in place of exec()\nor system() when the output from the Unix command is binary data which needs to be passed directly back to the browser.\nA common use for this is to execute something like the pbmplus utilities that can output an image stream directly.\nBy setting the Content-type to image/gif and then calling a pbmplus program to output a gif, you can create PHP scripts that output images directly.\n");
    
printf("</font>\n");
    
printf("</pre>\n");
    break;
  case 
"ts":
    
printf("<b>mysql_c_api.php - source</b><br><br>\n");
    
printf("<code  class=\"big\">");
    
printf("%s\n",highlight_file("mysql_c_api.php"));
    
printf("</code>\n");
    break;
  case 
"t":
    
printf("<b>TEXT Produced</b><br><br>\n");
    
$cmd "cgi-bin/mysql_c_api.cgi ussss q.sql";
    
$rv  = `$cmd`;
    
printf("<code  class=\"big\">\n");
    
printf("%s",highlight_string($rv,1));
    
printf("</code>\n");
    break;
  case 
"q":
    
printf("<b>Countents of q.sql</b>\n");
    
printf("<xmp  class=\"big\">");
    
$x file_get_contents("q.sql");
    
printf("%s\n",$x);
    
printf("</xmp>\n");
    break;
  case 
"h":
    
printf("<b>HTML Produced</b><br><br>\n");
    
$cmd "cgi-bin/mysql_c_api.cgi ussss q.sql HTML";
    
$rv  = `$cmd`;
    
printf("%s",highlight_string($rv,1));
    break;
  case 
"x":
    
printf("<b>XML Produced</b><br><br>\n");
    
$cmd "cgi-bin/mysql_c_api.cgi ussss q.sql XML";
    
$rv  = `$cmd`;
    
printf("<code class=\"big\">\n");
    
printf("%s",highlight_string($rv,1));
    
printf("</code>\n");
    break;
  case 
"view_c":
    
printf("<b>mysql_c_api.c - source</b>\n");
    
printf("<xmp  class=\"big\">");
    
$x file_get_contents("mysql_c_api.c");
    
printf("%s\n",$x);
    
printf("</xmp>\n");
    break;
  case 
"view_h":
    
printf("<b>db_mysql.h - source</b>\n");
    
printf("<xmp class=\"big\">");
    
$x file_get_contents("db_mysql.h");
    
printf("%s\n",$x);
    
printf("</xmp>\n");
    break;
}

if( (
$action == "t" || $action == "h" || $action == "x" || $action == "" || $action == "view_c" || $action == "view_h") ){
  echo <<< HB
  <br>
  </body>
  </html>

HB;
}
?>

1