开发者

Syntax Error for around LIMIT

I'm working on a training course for PHP and I think the mysql syntax is outdated. This is the function

function get_subject_by_id($subject_id) {
    global $connection;
    $query = "SELECT * ";
    $query .= "FROM subjects ";
    $query .= "WHERE id=" . $subject_id ." ";
    $query .= "LIMIT 1";
    $result_set = mysql_query($query, $connection);
    confirm_query($result_set);
    if ($subject = mysql_fetch_array($result_set)) {
        return $subject;
    } else { 
            return NULL;
    }
}

and I'm getting back this error: Database query failed: 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 'LIMIT 1' at line 1

I'm not sure what I'm doing wrong here. Any help from someone who knows what might have change开发者_如何学运维d in the syntax would be greatly appreciated.


$query = "SELECT *
          FROM subjects
          WHERE id = $subject_id 
          LIMIT 1";

Query fails because $subject_id is empty.

SELECT * FROM subjects WHERE id= LIMIT 1


apparently the $subject_id is causing the trouble, check if the value is passed correctly.


Two wild guesses:

  • You did not quote / escape $subject_id which contains a string or something non-integer (such as FALSE, NULL or the empty string).
    Even if this is not the cause, it makes your script vulnerable to SQL injection.
  • You are using a Mac for coding and have erroneously inserted a non-breakable space
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜