Difference between revisions of "CSC220 testSql.php"
(4 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
--[[User:Thiebaut|D. Thiebaut]] 21:28, 13 October 2010 (UTC) | --[[User:Thiebaut|D. Thiebaut]] 21:28, 13 October 2010 (UTC) | ||
− | |||
− | |||
---- | ---- | ||
<code><pre> | <code><pre> | ||
+ | <?php | ||
// testSql.php | // testSql.php | ||
// D. Thiebaut | // D. Thiebaut | ||
Line 16: | Line 15: | ||
// Modification 10/18/10: Julia Burch | // Modification 10/18/10: Julia Burch | ||
// $result = mysql_select_db($database); | // $result = mysql_select_db($database); | ||
− | + | // Version 4 (10/30/10) | |
//---------------------------------------------------------- | //---------------------------------------------------------- | ||
// Globals. Enter your user information here | // Globals. Enter your user information here | ||
//---------------------------------------------------------- | //---------------------------------------------------------- | ||
− | + | include 'accessinfo.php'; // contains $user, $password, $host, $database, and $sqlFile | |
− | $ | + | |
− | $host | ||
− | $database | ||
− | $sqlFile | ||
//---------------------------------------------------------- | //---------------------------------------------------------- | ||
Line 39: | Line 35: | ||
} | } | ||
if ( $result ===False ) { | if ( $result ===False ) { | ||
− | print "query unsuccessful\n" ; | + | print "query unsuccessful: " . mysql_error() . "\n" ; |
return; | return; | ||
} | } | ||
Line 65: | Line 61: | ||
//--- connect --- | //--- connect --- | ||
− | mysql_connect( $host, $user, $passwd ) | + | $link = mysql_connect( $host, $user, $passwd ); |
− | print "==> Connected to | + | if ( !$link ) |
+ | die( "Unable to connect to db\n" . mysql_error() . "\n" ); | ||
+ | print "==> Connected to server\n"; | ||
//--- select database --- | //--- select database --- | ||
// Modification J. Burch 10/18/10 | // Modification J. Burch 10/18/10 | ||
$result = mysql_select_db($database); | $result = mysql_select_db($database); | ||
+ | if ( ! $result ) | ||
+ | die( "unable to select database " . $database . "\n" . mysql_error() . "\n" ); | ||
+ | print "--> connected to " . $database . "\n"; | ||
//--- get mysql file --- | //--- get mysql file --- | ||
Line 78: | Line 79: | ||
//--- remove comments. Comments start a line with '--' --- | //--- remove comments. Comments start a line with '--' --- | ||
$lines = explode( "\n", $oneLine ); | $lines = explode( "\n", $oneLine ); | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
//--- run each query on the SQL server --- | //--- run each query on the SQL server --- | ||
$currentQuery = ""; | $currentQuery = ""; | ||
foreach( $lines as $line ) { | foreach( $lines as $line ) { | ||
− | printf( $line . "\n" ); | + | printf( str_replace( "%", "%%", $line ). "\n" ); |
$line = trim( $line ); | $line = trim( $line ); | ||
$queryPart = removeComments( $line ); | $queryPart = removeComments( $line ); | ||
if ( strlen( $queryPart )!= 0 ) | if ( strlen( $queryPart )!= 0 ) | ||
− | $currentQuery .= $queryPart; | + | $currentQuery .= " " . $queryPart; |
if ( strchr( $queryPart, ";" )!== False ) { | if ( strchr( $queryPart, ";" )!== False ) { | ||
− | |||
$result = mysql_query( $currentQuery ); | $result = mysql_query( $currentQuery ); | ||
displayQueryResult( "", $result ); | displayQueryResult( "", $result ); | ||
Line 110: | Line 101: | ||
?> | ?> | ||
− | |||
Latest revision as of 08:32, 31 October 2010
--D. Thiebaut 21:28, 13 October 2010 (UTC)
<?php
// testSql.php
// D. Thiebaut
// A simple php program that reads a file containing sql queries
// and issues them, one at a time to the database server on
// xgridmac.
// The queries are executed, their status displayed (successful,
// unsuccessful), and the result of their output (if any) is also
// displayed on the screen.
// Modification 10/18/10: Julia Burch
// $result = mysql_select_db($database);
// Version 4 (10/30/10)
//----------------------------------------------------------
// Globals. Enter your user information here
//----------------------------------------------------------
include 'accessinfo.php'; // contains $user, $password, $host, $database, and $sqlFile
//----------------------------------------------------------
// display the result of the query
//----------------------------------------------------------
function displayQueryResult( $caption, $result ) {
//print "\n---------------------------------------------------------\n";
print "===> Result of query: ". $caption . "\n";
//var_dump( $result );
if ( $result === True ) {
print "query successful\n";
return;
}
if ( $result ===False ) {
print "query unsuccessful: " . mysql_error() . "\n" ;
return;
}
while ( $row = mysql_fetch_array( $result, MYSQL_NUM ) ) {
for ( $i=0; $i < count( $row ); $i++ )
print "$row[$i]\t";
print "\n";
}
}
//----------------------------------------------------------
// removeComments:
//----------------------------------------------------------
function removeComments( $s ) {
$good = explode( "--", $s );
if ( count( $good )==0 )
return "";
return $good[0];
}
//----------------------------------------------------------
// Run file of SQL queries on MySQL host and report results
//----------------------------------------------------------
//--- connect ---
$link = mysql_connect( $host, $user, $passwd );
if ( !$link )
die( "Unable to connect to db\n" . mysql_error() . "\n" );
print "==> Connected to server\n";
//--- select database ---
// Modification J. Burch 10/18/10
$result = mysql_select_db($database);
if ( ! $result )
die( "unable to select database " . $database . "\n" . mysql_error() . "\n" );
print "--> connected to " . $database . "\n";
//--- get mysql file ---
$oneLine = file_get_contents( $sqlFile );
//--- remove comments. Comments start a line with '--' ---
$lines = explode( "\n", $oneLine );
//--- run each query on the SQL server ---
$currentQuery = "";
foreach( $lines as $line ) {
printf( str_replace( "%", "%%", $line ). "\n" );
$line = trim( $line );
$queryPart = removeComments( $line );
if ( strlen( $queryPart )!= 0 )
$currentQuery .= " " . $queryPart;
if ( strchr( $queryPart, ";" )!== False ) {
$result = mysql_query( $currentQuery );
displayQueryResult( "", $result );
$currentQuery = "";
printf( "\n" );
}
}
//--- done. close connection ---
mysql_close();
?>