Index: trunk/admin/install.php =================================================================== diff -u -r69 -r77 --- trunk/admin/install.php (.../install.php) (revision 69) +++ trunk/admin/install.php (.../install.php) (revision 77) @@ -715,15 +715,44 @@ $state = "dbinfo"; } - else + elseif( $ado->ErrorNo() == 0 ) { - if(TableExists($ado,"ConfigurationAdmin,Category,Permissions")) + // check if all sql statements work + $sql_tests[] = 'DROP TABLE IF EXISTS test_table'; + $sql_tests[] = 'CREATE TABLE test_table(test_col mediumint(6))'; + $sql_tests[] = 'INSERT INTO test_table(test_col) VALUES (5)'; + $sql_tests[] = 'UPDATE test_table SET test_col = 12'; + $sql_tests[] = 'ALTER TABLE test_table ADD COLUMN new_col varchar(10)'; + $sql_tests[] = 'SELECT * FROM test_table'; + $sql_tests[] = 'DELETE FROM test_table'; + $sql_tests[] = 'DROP TABLE test_table'; + $test_result = 1; + foreach($sql_tests as $sql_test) { - $state="dbinfo"; - $db_error = "An In-Portal Database already exists at this location"; + $ado->Execute($sql_test); + if( $ado->ErrorNo()!=0 ) + { + $test_result = 0; + break; + } } - else - $state = "license"; + + + if($test_result == 1) + { + if(TableExists($ado,"ConfigurationAdmin,Category,Permissions")) + { + $state="dbinfo"; + $db_error = "An In-Portal Database already exists at this location"; + } + else + $state = "license"; + } + else // mysql user has insufficient permissions + { + $db_error = "Permission Error: (".$ado->ErrorNo().") ".$ado->ErrorMsg(); + $state = "dbinfo"; + } } }