Page 1 of 1

Why isn't this working..? :[

Posted: Mon Oct 29, 2007 6:37 pm
by Darkzero

Code: Select all

<?
include('config.php');

function db_blacklist_create() {
	mysql_query("CREATE TABLE blacklist(
		id INT NOT NULL AUTO_INCREMENT, 
		PRIMARY KEY(id),
		ip TEXT, 
		ip_range TEXT, 
		host TEXT, 
		encoding TEXT,
		language TEXT, 
		connection TEXT, 
		referrer TEXT,
		forwarded_for TEXT,
		via TEXT,
		current_url TEXT,
		browser TEXT,
		webserver TEXT,
		banned TEXT)")
		or die(mysql_error());
		echo 'Blacklist Database Created.<br>';
}

function checktable() {
	if (mysql_num_rows( mysql_query("SHOW TABLES LIKE '".blacklist."'")) == 0) {
		db_blacklist_create();
	}
}

checktable();

function fix_db() {
	mysql_query("CREATE TEMPORARY TABLE temp(
		ip VARCHAR(100), 
		ip_range VARCHAR(100), 
		host VARCHAR(100), 
		encoding VARCHAR(100), 
		language VARCHAR(100), 
		connection VARCHAR(100), 
		referrer VARCHAR(100), 
		forwarded_for VARCHAR(100), 
		via VARCHAR(100), 
		current_url VARCHAR(100), 
		browser VARCHAR(100), 
		webserver VARCHAR(100),
		banned VARCHAR(100))
		TYPE=HEAP;")
		or die(mysql_error());
	
	mysql_query("INSERT INTO temp(ip, ip_range, host, encoding, language, connection, referrer, forwarded_for, via, current_url, browser, webserver, banned) SELECT DISTINCT ip, ip_range, host, encoding, language, connection, referrer, forwarded_for, via, current_url, browser, webserver, banned FROM blacklist") or die(mysql_error());
	
	mysql_query("DROP TABLE blacklist") or die(mysql_error());

		mysql_query("CREATE TABLE blacklist(
		id INT NOT NULL AUTO_INCREMENT, 
		PRIMARY KEY(id),
		ip TEXT, 
		ip_range TEXT, 
		host TEXT, 
		encoding TEXT,
		language TEXT, 
		connection TEXT, 
		referrer TEXT,
		forwarded_for TEXT,
		via TEXT,
		current_url TEXT,
		browser TEXT,
		webserver TEXT,
		banned TEXT)")
		or die(mysql_error());
	
	mysql_query("INSERT INTO blacklist(ip, ip_range, host, encoding, language, connection, referrer, forwarded_for, via, current_url, browser, webserver, banned) SELECT DISTINCT ip, ip_range, host, encoding, language, connection, referrer, forwarded_for, via, current_url, browser, webserver, banned FROM temp") or die(mysql_error());
	
	mysql_query("DROP TABLE temp") or die(mysql_error());
	
}

fix_db();

?>

Output:

Code: Select all

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'connection TEXT, referrer TEXT, forwarded_for TEXT, via TEXT, current_u' at line 9

Is it a difference in mySQL versions? I'm running v5.0.16 if it makes any difference. Then again maybe im just overlooking something huge cause im new at this o.x