<?PHP 
// This file is intended as example and for testing purposes of pDB_SQL_PARSER 
 
// load parser-class 
require_once( 'pDB_SQL_PARSER.php'); 
require_once( 'pDB_TABLE_OBJ.php'); 
require_once( 'pDB_CORE.php'); 
 
 
// read queries from 'common_queries.txt' 
$queries     = file( 'common_queries.txt', false); 
array_push( $queries, ''); 
$num_queries = count( $queries); 
// trim linebreak from each query 
for ( $q=0; $q<$num_queries; $q++){ 
    $queries[$q] = trim( $queries[$q]); 
} 
 
 
// show HTML-interface 
if ( $_REQUEST['exec']) $CHECKED = "CHECKED"; 
else $CHECKED = ""; 
$query_sel   = "<form action='' method=POST>"; 
$query_sel  .= "<input type=checkbox name=exec value=1 $CHECKED>Execute code  <br>"; 
// custom SQL-query (entry made by user) 
$query_sel  .= "SQL-query:<br>"; 
$query_sel  .= "<textarea name=sqlAB cols=120 rows=2>"; 
$query_sel  .= @$_REQUEST['sqlAB']; 
$query_sel  .= "</textarea><br>"; 
// premade queries 
$query_sel  .= "Select query to test:<br>"; 
$query_sel  .= "<select name=QID>"; 
for ( $i=0; $i<$num_queries; $i++){ 
    $selected   = ""; 
    if ( @$_REQUEST['QID'] == $i) $selected = "SELECTED"; 
    $query_sel  .= "\t<option value='$i' $selected>$queries[$i];</option>"; 
} 
$query_sel  .= "</select>"; 
$query_sel  .= "<input type=submit value=Go><br>"; 
$query_sel  .= "</form>"; 
 
 
// parse sqlAB entered by user (if given) or execute 
// query specified by QID when sqlAB is empty 
$parser     = new pDB_SQL_PARSER; 
if ( strlen( @$_REQUEST['sqlAB']) > 0){ 
    $sqlAB  = $_REQUEST['sqlAB']; 
    $code   = $parser->parse( $sqlAB); 
}elseif ( isset( $_REQUEST['QID'])){ 
    $sqlAB  = $queries[$_REQUEST['QID']] . ';'; 
    $code   = $parser->parse( $sqlAB); 
} 
 
 
// show interface 
echo "<h1>pDB_SQL_PARSER quick-test</h1>"; 
echo $query_sel; 
echo "<p>"; 
echo "Statements:<br>"; 
echo "<textarea cols=120 rows=3>"; 
if ( $parser) print_r( $parser->STATEMENTS); 
echo "</textarea>"; 
echo "</p>\n"; 
echo "<p>"; 
echo "Statements (tokenized):<br>"; 
echo "<textarea cols=120 rows=5>"; 
if ( $parser) print_r( $parser->TOKENS); 
echo "</textarea>"; 
echo "</p>\n"; 
 
 
// generated code 
echo "Generated code:<br>"; 
if ( $parser){ 
    $code = $parser->OUT; 
    echo "<textarea cols=120 rows=3>"; 
    echo $code; 
    echo "</textarea><br>"; 
} 
 
// execute code 
if ( @$_REQUEST['exec']){ 
    $PDB = new pDB_CORE(); 
    $PDB->pDB_init( 'pDB.conf.php'); 
    $PDB->pDB_login( 'root', 'pDB'); 
    $res = $PDB->pDB_exec( $code); 
    if ( $res) { 
        ob_start(); 
        echo "<p>"; 
        echo '<b>Result:</b><br>'; 
        echo "<textarea cols=120 rows=5>"; 
        print_r( $res); 
        echo "</textarea>"; 
        echo "</p>\n"; 
        $out = ob_get_contents(); 
        #echo $out; 
    } 
} 
 
// debug 
echo "<p>Debug:<br>"; 
echo "<textarea cols=120 rows=5>"; 
if ( $parser){ 
    while( $error = $parser->err_get()){ 
        echo $error; 
    } 
} 
if ( $PDB){ 
    while( $error = $PDB->_get_message()){ 
        echo $error; 
    } 
} 
echo "</textarea>"; 
echo "</p>"; 
echo "<div align=right><small>pDB_SQL_PARSER_VERSION: " . PDB_SQL_PARSER_VERSION . "</small></div>"; 
echo "<div align=right><small>pDB_CORE_VERSION: " . PDB_CORE_VER . "</small></div>"; 
?>
 
 |