herghost Posted April 10, 2009 Share Posted April 10, 2009 Hi all, I have this: <?php //Start session session_start(); //Include database connection details require_once('include/database.php'); //Array to store validation errors $errmsg_arr = array(); //Validation error flag $errflag = false; //Function to sanitize values received from the form. Prevents SQL injection function clean($str) { $str = @trim($str); if(get_magic_quotes_gpc()) { $str = stripslashes($str); } return mysql_real_escape_string($str); } //Sanitize the POST values $banddataid = $_SESSION['SESS_USERID']; $bandname = $_SESSION['SESS_BANDNAME']; $genre = clean($_POST['genre']); $formed = clean($_POST['formed']); $member0 = clean($_POST['member0']); $member1 = clean($_POST['member1']); $member2 = clean($_POST['member2']); $member3 = clean($_POST['member3']); $member4 = clean($_POST['member4']); $member5 = clean($_POST['member5']); $position0 = clean($_POST['position0']); $position1 = clean($_POST['position1']); $position2 = clean($_POST['position2']); $position3 = clean($_POST['position3']); $position4 = clean($_POST['position4']); $position5 = clean($_POST['position5']); //Input Validations if($formed == '') { $errmsg_arr[] = 'Year Formed is Missing'; $errflag = true; } $sql = mysql_query("SELECT * FROM banddata WHERE userid = '$banddataid'"); if(mysql_num_rows($sql) == 0) { //Create INSERT query $qry = "INSERT INTO banddata (userid, bandname, genre, formed, position0, member0, position1, member1, position2, member2, position3, member3, position4, member4, position5, member5,) VALUES ('$banddataid','$bandname','$genre', '$formed' '$position0', '$member0','$position1', '$member1', '$position2', '$member2','$position3', '$member3','$position4', '$member4', '$position5', '$member5')"; } else { //Create update query $qry = "UPDATE banddata SET bandname = '$bandname', genre = '$genre', formed = '$formed', position0 = '$position0', member0 ='$member0', position1 = '$position1', member1= '$member1', position2 = '$position2', member2 ='$member2', position3 = '$position3', member3 ='$member3', position4 = '$position4', member4 ='$member4', position5 = '$position5', member5 = '$member5' WHERE userid = '$banddataid'"; } $result = mysql_query($qry); //Check whether the query was successful or not if($result) { header("location: member_home.php"); exit(); }else { die(mysql_error()); } ?> Which works fine when there is already data in the table, however if there is no row existing then i get 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 ') VALUES ('1','Aerosmith','Rock', '' '', '','', '', '', '','', '',' at line 2 Also, when the update script is run, is there a way from stopping it replacing fields which already have a value in them? Link to comment https://forums.phpfreaks.com/topic/153516-solved-updateinsert-problem/ Share on other sites More sharing options...
annihilate Posted April 10, 2009 Share Posted April 10, 2009 You have a comma in your insert statement after member5 which shouldn't be there. Remove the comma and try running the query again. Link to comment https://forums.phpfreaks.com/topic/153516-solved-updateinsert-problem/#findComment-806610 Share on other sites More sharing options...
herghost Posted April 10, 2009 Author Share Posted April 10, 2009 Thanks! Didnt spot that However now I get: Column count doesn't match value count at row 1 ? Link to comment https://forums.phpfreaks.com/topic/153516-solved-updateinsert-problem/#findComment-806647 Share on other sites More sharing options...
herghost Posted April 10, 2009 Author Share Posted April 10, 2009 Got it! Was missing a comma! Link to comment https://forums.phpfreaks.com/topic/153516-solved-updateinsert-problem/#findComment-806673 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.