php - PHP 的 MySQL 语法错误

标签 php mysql windows wampserver

我在使用 MySQL 5.5.24 和 PHP 5.4.3 时遇到问题。我有以下 HTML/PHP 代码:

<?php
function connect() {
    $con = mysql_connect( "127.0.0.1", "root", "" );
    if ( !$con ) {
        die( "Could not connect: " . mysql_error() );
    }
    mysql_select_db( "game" );    
}

function protect( $string ) {
    return mysql_real_escape_string( strip_tags( addslashes( $string ) ) );
}


if ( isset( $_POST[ 'register' ] ) ) {
    connect();
    $username = protect( $_POST[ 'username' ] );    
    $register = mysql_query( "SELECT 'id' FROM 'user' WHERE 'username'='$username'" ) or die( mysql_error() );
    if ( mysql_num_rows( $register ) > 0 ) {
        echo "That username is already in use!";
    } else {
        $ins = mysql_query( "INSERT INTO 'user' ('username') VALUES ('$username')" ) or die( mysql_error() );
        echo "You have registered!"; 
    } 
}
?>
<form action="register.php" method="POST">           
Username: <input type="text" name="username"/><br/>
<input type="submit" name="register" value="Register"/>
</form>

无论我输入什么,MySQL 都会返回

"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 ''user' WHERE 'username'='XXX'' at line 1"

我用 phpmyadmin 检查了这些查询,它们工作得很好!也没有连接问题。我什至尝试了普通的 "SELECT * FROM 'user'" 结果相同。我根本没有得到任何响应,只是提到了有关格式错误的 SQL 语法的错误。

现在我检查了很多有相同错误的文章,在每一篇文章中,问题都是使用了 PHP 关键字或遗漏/拼错了变量名等等。我现在检查了我的陈述一百次,我找不到任何错误。我对 PHP 很陌生,所以也许我错过了一些东西......

我最近的一个实验是改变数据库和存储引擎的排序规则,同样没有结果......

希望你们看到我看不到的东西! :-)

顺便说一句,我正在运行 Windows 7 和 WAMP 2.2。

最佳答案

SELECT 'id' FROM 'user' WHERE 'username'

' 更改为 ` (反引号)

你所说的表名和列名你应该使用反引号。当您谈论字符串(如值)时,请使用单引号/双引号

关于php - PHP 的 MySQL 语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14026653/

相关文章:

php - 如何让我的 Wordpress 插件接收数据并将其在 ajax/php 请求中中继到需要身份验证的远程服务器?

PHP MySQLi 参数化查询不起作用

php - 将文件夹中的所有文件移动到另一个文件夹中?

找不到 mysql.sock,我在哪里可以找到它?

php - 当数字小于 1 时将逗号转换为点

PHP 简单 HTML DOM 解析器 - 获取元素的带连字符的属性值

php - Symfony2 Doctrine,通过外键连接表

windows - x86 可执行文件在 64 位操作系统上可以使用多少内存?

windows - 较低的过滤器驱动程序

excel - 用于 64 位 Visual Basic 的更新