MYSQL Error

djpatzo

Registered
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 'I' at line 1

Използвам for цикъл за изпълнение на заявката. От какво може идва проблема имам заявки към няколко таблици и за всяка го дава този проблем. Иначе си изпълнява заявките както трябва.
 
Сега представи си, че се обадиш на твоя личен лекар и му кажеш: "-Боли ме, глава"
Дали може да ти каже на какво се дължи, без да те види???
Мислиш ли, че без код има начин, който да било да ти помогне?
 
Аз уточних, че заявките ми се изпълняват между for цикъл.

Бях питал в друга тема точно за това. http://web-tourist.net/forum/viewtopic.php?t=87423 стигнах до там, че да добавя в mysql без проблем, но след изпълнението на заявките ми извежда някаква грешка, точно тази която съм показал в 1-вия си пост.
 
Ето я.
Код:
for($i = 1; $i <= addslashes($_POST['n_users']); $i++) {
    if(!isset($invalid)) {
	$e_month = date('n', mktime(0, 0, 0, $n_month + 1, 1, $year));
	$e_year = date('Y', mktime(0, 0, 0, $n_month + 1, 1, $year));
	$query['userinfo'] = "INSERT INTO `userinfo` VALUES('".addslashes($_POST['username']).(($i == 1)?'':$i)."',
	'". addslashes($_POST['name']). "', '". addslashes($_POST['mail']). "',
	'". addslashes($_POST['address']). "', '". addslashes($_POST['phone']). "',
	'". addslashes($_POST['mobile']). "', '".find_free_usernumb()."', '". time(). "', 2)";
	$query['firminfo'] = "INSERT INTO firminfo VALUES('".addslashes($_POST['username']).(($i == 1) ? '' : $i)."', '',
	'". addslashes($_POST['name']). "', '', '". addslashes($_POST['address']). "',
	'". addslashes($_POST['phone']). "', '". addslashes($_POST['mobile']). "', '', '')";
	$query['acc_history'] = "INSERT INTO acc_history VALUES('".addslashes($_POST['username']).(($i == 1) ? '' : $i)."',
	$month, $year, $_POST[toa], 0, 0)";
	$query['n_acc_history'] = "INSERT INTO acc_history VALUES('".addslashes($_POST['username']).(($i == 1) ? '' : $i)."',
	$n_month, $n_year, $_POST[toa], 0, 0)";
	$query['e_acc_history'] = "INSERT INTO acc_history VALUES('".addslashes($_POST['username']).(($i == 1) ? '' : $i)."',
	$e_month, $e_year, $_POST[toa], 0, 0)";
	$query['accounts'] = "INSERT INTO accounts VALUES('".addslashes($_POST['username']).(($i == 1) ? '' : $i)."',
	'$_POST[location]', 'P', 'W', '0', '1', '', '$_SESSION[login]', '0', '0')";
	$query['radcheck_pass'] = "INSERT INTO radcheck VALUES('', '".addslashes($_POST['username']).(($i == 1) ? '' : $i)."',
	'Password', '==', '". addslashes($_POST['password']). "')";
	$query['radcheck_exp'] = "INSERT INTO radcheck VALUES('', '".addslashes($_POST['username']).(($i == 1) ? '' : $i)."',
	'Expiration', ':=', '$_POST[exp]')";
	$query['radreply'] = "INSERT INTO radreply VALUES('', '".addslashes($_POST['username']).(($i == 1) ? '' : $i)."',
	'Framed-IP-Address', ':=', '".find_free_ip()."')";
	$query['usergroup'] = "INSERT INTO usergroup VALUES('', '".addslashes($_POST['username']).(($i == 1) ? '' : $i)."', 'pppoe', '1')";

	db_connect();
	foreach($query as $q) {
	mysql_query($q);
	if(!mysql_query($q[$table])) {
	    //echo $q.'<BR>';
	    echo(mysql_error(). "<BR>\n");
	    $error = FALSE;
	}
	}
	
	if(!isset($error)) {
	    $query = "INSERT INTO log VALUES('', '".addslashes($_POST['username']).(($i == 1) ? '' : $i)."',
	    '$_GET[action]', '', '', '',". time(). ", '$_SERVER[REMOTE_ADDR]', '$_SESSION[login]')";
	    mysql_query($query);
	    echo('<FONT COLOR="'. $cl_main_text. '">Потребителят <FONT COLOR="'. $cl_main_hl. '">
	    '.addslashes($_POST['username']).(($i == 1) ? '' : $i). "</FONT> е успешно добавен.</FONT><BR>\n");
	}
	mysql_close();
    }
}

Дава тази грешка. Самите функции за usernumb и find_free_ip също си ги имам тях си ги прави както трябва, но ми дава грешката от 1-ви пост. Както казах използвам for цикъл за заявките. Всички полета трябва да са еднакви с изключение на username, usernumb, ip както ще видите и от заявките.
 
HINT 1:

$q ~ 'INSERT INTO'

print_r($q[$table]) ~ 'I'

mysql_query('I') ~ 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 'I' at line 1

HINT 2:

foreach($query as $k => $q) {

$k ~ name of the table
 

Back
Горе