Ok, another MySQL error, any takers?

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
User avatar
cap2cap10
Forum Contributor
Posts: 158
Joined: Mon Apr 14, 2008 11:06 pm

Ok, another MySQL error, any takers?

Post by cap2cap10 »

Greeting, php technorati!

:banghead: Now I am getting this error on my mysql insert script:

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/**************************** on line 90


Here is my code:

Code: Select all

<?php
if (isset($_POST['submitted']))
{
 
    $userID = $_POST['userID'];
    $candidateID = $_POST['candidateID'];
    $object = $_POST['object'];
    $skills = $_POST['skills'];
    $boss_1 = $_POST['boss_1'];
    $job_title_1 = $_POST['job_title_1'];
    $start_mo_1 = $_POST['start_mo_1'];
    $start_yr_1 = $_POST['start_yr_1'];
    $end_mo_1 = $_POST['end_mo_1'];
    $end_yr_1 = $_POST['end_yr_1'];
    $job_duty_1 = $_POST['job_duty_1'];
    $boss_2 = $_POST['boss_2'];
    $job_title_2 = $_POST['job_title_2'];
    $start_mo_2 = $_POST['start_mo_2'];
    $start_yr_2 = $_POST['start_yr_2'];
    $end_mo_2 = $_POST['end_mo_2'];
    $end_yr_2 = $_POST['end_yr_2'];
    $job_duty_2 = $_POST['job_duty_2'];
    $boss_3 = $_POST['boss_3'];
    $job_title_3 = $_POST['job_title_3'];
    $start_mo_3 = $_POST['start_mo_3'];
    $start_yr_3 = $_POST['start_yr_3'];
    $end_mo_3 = $_POST['end_mo_3'];
    $end_yr_3 = $_POST['end_yr_3'];
    $job_duty_3 = $_POST['job_duty_3'];
    $boss_4 = $_POST['boss_4'];
    $job_title_4 = $_POST['job_title_4'];
    $start_mo_4 = $_POST['start_mo_4'];
    $start_yr_4 = $_POST['start_yr_4'];
    $end_mo_4 = $_POST['end_mo_4'];
    $end_yr_4 = $_POST['end_yr_4'];
    $job_duty_4 = $_POST['job_duty_4'];
    $boss_5 = $_POST['boss_5'];
    $job_title_5 = $_POST['job_title_5'];
    $start_mo_5 = $_POST['start_mo_5'];
    $start_yr_5 = $_POST['start_yr_5'];
    $end_mo_5 = $_POST['end_mo_5'];
    $end_yr_5 = $_POST['end_yr_5'];
    $job_duty_5 = $_POST['job_duty_5'];
    $school_1 = $_POST['school_1'];
    $major_1= $_POST['major_1'];
    $degree_1 = $_POST['degree_1'];
    $year_1 = $_POST['year_1'];
    $school_2 = $_POST['school_2'];
    $major_2 = $_POST['major_2'];
    $degree_2 = $_POST['degree_2'];
    $year_2 = $_POST['year_2'];
    $school_3 = $_POST['school_3'];
    $major_3 = $_POST['major_3'];
    $degree_3 = $_POST['degree_3'];
    $year_3 = $_POST['year_3'];
    $school_4 = $_POST['school_4'];
    $major_4 = $_POST['major_4'];
    $degree_4 = $_POST['degree_4'];
    $year_4 = $_POST['year_4'];
    $school_5 = $_POST['school_5'];
    $major_5 = $_POST['major_5'];
    $degree_5 = $_POST['degree_5'];
    $year_5 = $_POST['year_5'];
    $certificate = $_POST['certificate'];
    $association = $_POST['association'];
    $references = $_POST['refer'];
}
    
// Connect to server and select databse.
mysql_connect(*****************************************) or die(mysql_error());
mysql_select_db('*********) or die(mysql_error());
    
    mysql_query("INSERT INTO js_resume (userID, candidateID, object, skills, boss_1, job_title_1,
    start_mo_1, start_yr_1, end_mo_1, end_yr_1, job_duty_1, boss_2, job_title_2, start_mo_2,
    start_yr_2, end_mo_2, end_yr_2, job_duty_2, boss_3, job_title_3, start_mo_3, start_yr_3,
    end_mo_3, end_yr_3, job_duty_3, boss_4, job_title_4, start_mo_4, start_yr_4, end_mo_4,
    end_yr_4, job_duty_4, boss_5, job_title_5, start_mo_5, start_yr_5, end_mo_5, end_yr_5,
    job_duty_5, school_1, major_1, degree_1, year_1, school_2, major_2, degree_2, year_2,
    school_3, major_3, degree_3, year_3, school_4, major_4, degree_4, year_4, school_5,
    major_5, degree_5, year_5, certificate, association, refer) VALUES ('$userID', '$candidateID',
    '$object', '$skills', '$boss_1', '$job_title_1', '$start_mo_1', '$start_yr_1', '$end_mo_1', '$end_yr_1',
    '$job_duty_1', '$boss_2', '$job_title_2', '$start_mo_2', '$start_yr_2', '$end_mo_2', '$end_yr_2', '$job_duty_2',
    '$boss_3','$job_title_3','$start_mo_3','$start_yr_3','$end_mo_3', '$end_yr_3','$job_duty_3','$boss_4',
    '$job_title_4', '$start_mo_4', '$start_yr_4', '$end_mo_4', '$end_yr_4', '$job_duty_4', '$boss_5', '$job_title_5',
    '$start_mo_5','$start_yr_5','$end_mo_5','$end_yr_5','$job_duty_5','$school_1','$major_1','$degree_1','$year_1',
    '$school_2', '$major_2', '$degree_2', '$year_2', '$school_3', '$major_3', '$degree_3', '$year_3', '$school_4', '$major_4',
    '$degree_4','$year_4','$school_5','$major_5','$degree_5','$year_5',
     '$certificate', '$association', '$refer')") or die(mysql_error());
 
$query ="INSERT INTO `js_profile` (candidateID) VALUES ('$candidateID') WHERE `userID` = $_POST['userID']";
$result = mysql_query($query) or die('Query failed: ' . mysql_error());
 
$query = "INSERT INTO `js_account` (candidateID) VALUES ('$candidateID') WHERE `userID` = $_POST['userID']";
$result = mysql_query($query) or die('Query failed: ' . mysql_error());
 
mysql_close();
 
 
?>
Does anyone see the mistake? Because I can't.
thanks in advance,

Batoe
User avatar
aceconcepts
DevNet Resident
Posts: 1424
Joined: Mon Feb 06, 2006 11:26 am
Location: London

Re: Ok, another MySQL error, any takers?

Post by aceconcepts »

Code: Select all

 
//change to:
$query ="INSERT INTO `js_profile` (candidateID) VALUES ('$candidateID') WHERE `userID` = ".$_POST['userID']."";
$result = mysql_query($query) or die('Query failed: ' . mysql_error());
 
$query = "INSERT INTO `js_account` (candidateID) VALUES ('$candidateID') WHERE `userID` = ".$_POST['userID']."";
$result = mysql_query($query) or die('Query failed: ' . mysql_error());
 
User avatar
Eran
DevNet Master
Posts: 3549
Joined: Fri Jan 18, 2008 12:36 am
Location: Israel, ME

Re: Ok, another MySQL error, any takers?

Post by Eran »

You are trying to access an array index inside double quotes which you can't do. Use the dot (concatenation) operator:

Code: Select all

 
$query ="INSERT INTO `js_profile` (candidateID) VALUES ('$candidateID') WHERE `userID` = " . $_POST['userID'];
 

Code: Select all

 
$query = "INSERT INTO `js_account` (candidateID) VALUES ('$candidateID') WHERE `userID` = " . $_POST['userID'];
 
Also, you entire script can be made much more compact and maintainable if you use the fact that your input names mimic your database fields:

Code: Select all

 
<?php
$fields = array(
    'userID','candidateID', 'object', 'skills', 'boss_1', 'job_title_1',
    'start_mo_1','start_yr_1','end_mo_1','end_yr_1','job_duty_1','boss_2','job_title_2','start_mo_2',
    'start_yr_2','end_mo_2','end_yr_2','job_duty_2','boss_3','job_title_3','start_mo_3','start_yr_3',
    'end_mo_3','end_yr_3','job_duty_3','boss_4','job_title_4','start_mo_4','start_yr_4','end_mo_4',
    'end_yr_4','job_duty_4','boss_5','job_title_5','start_mo_5','start_yr_5','end_mo_5','end_yr_5',
    'job_duty_5','school_1','major_1','degree_1','year_1','school_2','major_2','degree_2','year_2',
    'school_3','major_3','degree_3','year_3','school_4','major_4','degree_4','year_4','school_5',
    'major_5','degree_5','year_5','certificate','association','refer'
);
 
$values = array();
foreach($fields as $field) {
    $values[] = "'" . (isset($_POST[$field]) ? mysql_real_escape_string($_POST[$field]) : '') . "'";
}
$query = "INSERT INTO `js_resume` (" . implode(',',$fields) . ") VALUES (" . implode(',',$values) . ")";
 
I added some escaping on the way.
Post Reply