1

这是一个小的代码示例,它给了我一个 MySQL 语法错误。Connect.php 正在连接到正确的数据库,并且可以与其他项目和代码一起使用。我知道 connect.php 中的代码是正确的。它给了我一个 MySQL 语法错误。它没有提供比这更详细的信息:

您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以key在第 1 行的 'keys WHERE ='xxxxxxxxxxxx''附近使用正确的语法

我从主项目中提取了这个小代码示例,它仍然抛出错误。

<?php
    require "connect.php";          
    $keyCheck = mysql_query("SELECT * FROM keys WHERE `key`='".$_POST['betakey']."'" , $con);

    if (!$keyCheck) {
        echo mysql_error();
        exit;
    } else {
        $keyRows = mysql_num_rows($keyCheck);
    if ($keyRows == 0) {
        echo "This key is invalid!";
        exit;
    }
?>

编辑:我让管理员重命名表,你们帮我解决了一些潜在的安全隐患。

4

1 回答 1

6

I'm fairly sure keys is a reserved word. In any case, you should always enclose database, table and column names in backticks. Not just "sometimes" as you have in this example. Always.

Source.

于 2012-08-31T14:20:16.893 回答