0

I am trying to insert a MYSQL query as following:

  doSql("INSERT INTO users (userTypeID, memberUsername, memberHashPassword, memberFirstName, memberLastName, memberEmail, memberStreetNumber, memberStreetName, memberSuburb, memberPostcode, memberCountry, memberPhone, memberMobile, memberGender, memberNewsletter, memberImage) VALUES (2, $mUsername, $hashedPassword, $mFirstName, $mLastName, $mEmail, $mStreetNumber, $mStreetName, $mSuburb, $mPostcode, $mCountry, $mPhone, $mMobilePhone, $mGender, $mNewsletter, $destination_path)");

And I'm getting the following error:

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 ' e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855, , , , , , , ,' at line 1

I have checked for any syntax error like semicolon missing but I don't understand why I'm getting this.

I mean where are these characters coming from: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855?

Here is the doSql function:

/********** Perform MYSQL Query **********/
function doSql($query) {
// 1. Connect to the database
$con = mysqli_connect('localhost', 'root', '', 'shahyan_gameon');
// 2. Test if connection occured
if(mysqli_connect_errno()) {
    die("Database connection failed " . mysqli_connect_error() . "( " . mysqli_connect_errno() . " )");
    return false;
}
// 3. Do the query
$result = mysqli_query($con, $query) or die(mysqli_error($con));
// mysqli_query runs a query against the database using two argument, the connection and the query string
//die() stops a script from being processed and outputs info.
if($result) {
    return $result;
} else {
    return false;
}
}
user3289740
  • 271
  • 3
  • 6
  • 17

3 Answers3

1

you need to wrap strings in ' [quotes].

 doSql("INSERT INTO users (userTypeID, memberUsername, memberHashPassword, memberFirstName, memberLastName, memberEmail, memberStreetNumber, memberStreetName, memberSuburb, memberPostcode, memberCountry, memberPhone, memberMobile, memberGender, memberNewsletter, memberImage) VALUES (2, '$mUsername', '$hashedPassword', '$mFirstName', '$mLastName', '$mEmail', '$mStreetNumber', '$mStreetName', '$mSuburb', '$mPostcode', '$mCountry', '$mPhone', '$mMobilePhone', '$mGender', '$mNewsletter', '$destination_path')");

and it should work fine.

Mubin
  • 4,325
  • 5
  • 33
  • 55
0

try this

doSql("INSERT INTO users (userTypeID, memberUsername, memberHashPassword, memberFirstName, memberLastName, memberEmail, memberStreetNumber, memberStreetName, memberSuburb, memberPostcode, memberCountry, memberPhone, memberMobile, memberGender, memberNewsletter, memberImage) VALUES (2, '".$mUsername."', '".$hashedPassword."', '".$mFirstName."', '".$mLastName."', '".$mEmail."', '".$mStreetNumber."', '".$mStreetName."', '".$mSuburb."', '".$mPostcode."', '".$mCountry."', '".$mPhone."', '".$mMobilePhone."', '".$mGender."', '".$mNewsletter."', '".$destination_path."')");
Sandeep Nambiar
  • 1,656
  • 3
  • 22
  • 38
0

The syntax to insert values into a table using MySQL is as follows:

INSERT INTO table_name VALUES('strParameter1','strParameter2',intParameter1);

In your case, you should try:

doSql("INSERT INTO users VALUES(userTypeID, memberUsername, memberHashPassword, memberFirstName, memberLastName, memberEmail, memberStreetNumber, memberStreetName, memberSuburb, memberPostcode, memberCountry, memberPhone, memberMobile, memberGender, memberNewsletter, memberImage) VALUES (2, $mUsername, $hashedPassword, $mFirstName, $mLastName, $mEmail, $mStreetNumber, $mStreetName, $mSuburb, $mPostcode, $mCountry, $mPhone, $mMobilePhone, $mGender, $mNewsletter, $destination_path)");
int-main
  • 57
  • 1
  • 12