简体   繁体   English

为什么MySQL INSERT查询出现错误? 错误是什么意思?

[英]Why is MySQL INSERT query shooting an error? What does the error mean?

I am trying to insert a MYSQL query as following: 我正在尝试插入如下的MYSQL查询:

  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 ? 我的意思是这些字符来自哪里: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

Here is the doSql function: 这是doSql函数:

/********** 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;
}
}

you need to wrap strings in ' [quotes] . 您需要将strings包装在' [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. 它应该可以正常工作。

尝试这个

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."')");

The syntax to insert values into a table using MySQL is as follows: 使用MySQL将值插入表中的语法如下:

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)");

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM