Caught Exception Error. Please Help

PHP programming forum. Ask questions or help people concerning PHP code. Don't understand a function? Need help implementing a class? Don't understand a class? Here is where to ask. Remember to do your homework!

Moderator: General Moderators

Post Reply
Browny
Forum Newbie
Posts: 4
Joined: Wed Apr 11, 2012 9:16 pm

Caught Exception Error. Please Help

Post by Browny »

Hey Guys,

I am having some trouble trying to figure this out. It is saying this error:

Caught exception: 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 'primary, secondary) VALUES ('Bob', 'Brown', 'browny@hotmail.com', '87e6a5baa4' at line 1

Notice: Undefined variable: result in /Users/Tim/Sites/FINALRM/players.php on line 158
Error Adding Player

The form code is this:

Code: Select all

	<form id="form" action="players.php" name="addplayer" method="post"><div style='margin-top: 10px;'></div>

		First Name: <br /><input class="form" type="text" name="fname" size="32" <?php if (isset($_POST['fname'])) { print ' value="' . $_POST['fname'] . '"'; } ?>/>

		<div id='spacing'></div>

		Last Name: <br /><input class="form" type="text" name="lname" size="32" <?php if (isset($_POST['lname'])) { print ' value="' . $_POST['lname'] . '"'; } ?>/>

		<div id='spacing'></div>

		Email: <br /><input class="form" type="text" name="email" size="32" <?php if (isset($_POST['email'])) { print ' value="' . $_POST['email'] . '"'; } ?>/>

		<div id='spacing'></div>

		Mobile: <br /><input class="form" type="text" name="number" size="32" <?php if (isset($_POST['number'])) { print ' value="' . $_POST['number'] . '"'; } ?>/>

		<div style='margin-top: 10px;'></div>

		<select name="primary" style="width: 190px">
			<option>Primary Position</option>
			<option value="1">Loosehead Prop</option>
			<option value="2">Hooker</option>
			<option value="3">Tighthead Prop</option>
			<option value="4">Lock</option>
			<option value="5">Lock</option>
			<option value="6">Blindside Flanker</option>
			<option value="7">Openside Flanker</option>
			<option value="8">Number 8</option>
			<option value="9">Scrum Half</option>
			<option value="10">Fly Half</option>
		    <option value="11">Left Wing</option>
			<option value="12">Inside Centre</option>
		    <option value="13">Outside Centre</option>
		    <option value="14">Right Wing</option>
			<option value="15">Fullback</option>
		</select>

		<div style='margin-top: 10px;'></div>

		<select name="secondary" style="width: 190px">
			<option>Secondary Position</option>
			<option value="1">Loosehead Prop</option>
			<option value="2">Hooker</option>
			<option value="3">Tighthead Prop</option>
			<option value="4">Lock</option>
			<option value="5">Lock</option>
			<option value="6">Blindside Flanker</option>
			<option value="7">Openside Flanker</option>
			<option value="8">Number 8</option>
			<option value="9">Scrum Half</option>
			<option value="10">Fly Half</option>
		    <option value="11">Left Wing</option>
			<option value="12">Inside Centre</option>
		    <option value="13">Outside Centre</option>
		    <option value="14">Right Wing</option>
			<option value="15">Fullback</option>
		</select>

		<div style='margin-top: 10px;'></div>
		<input type="hidden" name="message">       
		<div style='float:right;'><input type="submit" name="addplayer" value="Add Player" /><div style='margin-top: 5px;'></div></div>
		</form>	<div style='margin-top: 10px;'></div>

		<?php

		if (isset($_POST['addplayer'])) {

		// include RoutoSMS class 
		include("sms/RoutoTelecomSMS.php"); 
		// creating object 
		$sms = new RoutoTelecomSMS; 
		// setting login parameters 
		$sms->SetUser("1172754");
		$sms->SetPass("*******");
		$sms->SetOwnNum("*******"); // optional 
		$sms->SetType("SMS"); // optional 
		// get values entered from FORM 

		$fname = trim($_POST['fname']);
		$lname = trim($_POST['lname']);
		$number = $_POST['number']; 
		$email = trim($_POST['email']); 
		$message = $_POST['message']; 
		$primary = trim($_POST['primary']);
		$secondary = trim($_POST['secondary']);
		$errors = array();

			if (empty($_POST['fname']) || empty($_POST['lname']) || empty($_POST['email'])  || empty($_POST['primary']) || empty($_POST['secondary']) || empty($_POST['number'])) {
				echo "Please fill out all fields.";
				} else {

		if(emailExistsManagers($email)) {
			$errors[] = "Email already registered.";
		}

		if(emailExistsPlayers($email)) {
			$errors[] = "Email already registered.";
		}

		if(mobileExistsManagers($number)) {
			$errors[] = "Mobile number already exists.";
		}

		if(mobileExistsPlayers($number)) {
			$errors[] = "Mobile number already exists.";
		}

		if(count($errors) == 0) {

			$password = createRandomPassword(); 

			$salt = randomString();
			$hashedPassword = hashPassword($password, $salt);

			// Run our register function as was declared above.
			try {
				$result = registerplayer($fname, $lname, $email, $hashedPassword, $salt, $number, $primary, $secondary);
			} catch(Exception $e) {
				echo '<p>Caught exception: ' . $e->getMessage() . PHP_EOL . '</p>';
			}

				if($result) {


					$message = "Hello, this is your login details: Username: ".$email." Password: ".$password."";
					$sms->SetNumber($number); 
					$sms->SetMessage($message); 
					// send SMS and print result 
					$smsresult = $sms->Send(); 

					//	header("Location: sendsms.php"); 

				} else {
					echo '<p>Error Adding Player</p>';
				} 

				} else {
					foreach($errors as $error) {
						echo $error . "<br>";
					}
				}


		}
		}


		?>

The code for the function is this:

Code: Select all

function registerplayer($fname, $lname, $email, $hashedPassword, $salt, $number, $primary, $secondary) {
	$query = mysql_query("INSERT INTO players (fname, lname, email, password, salt, mobile, primary, secondary) VALUES ('$fname', '$lname', '$email', '$hashedPassword', '$salt', '$number', '$primary', '$secondary')");
	if($query) {
		return true;
	} else {
		throw new Exception(mysql_error());
		return false;
	}
}
Cheers Guys
User avatar
requinix
Spammer :|
Posts: 6617
Joined: Wed Oct 15, 2008 2:35 am
Location: WA, USA

Re: Caught Exception Error. Please Help

Post by requinix »

"primary" is one of the reserved words in MySQL. Quote the field name or use a different one.
User avatar
azycraze
Forum Commoner
Posts: 56
Joined: Mon Oct 24, 2011 12:08 pm
Location: India

Re: Caught Exception Error. Please Help

Post by azycraze »

$query = mysql_query("INSERT INTO `players` (`fname`, `lname`, `email`, `password`, `salt`, `mobile`,`primary`, `secondary`) VALUES ('$fname', '$lname', '$email', '$hashedPassword', '$salt', $number, $primary, $secondary)");
Browny
Forum Newbie
Posts: 4
Joined: Wed Apr 11, 2012 9:16 pm

Re: Caught Exception Error. Please Help

Post by Browny »

Cheers Guys
Post Reply