SQL语法中的错误

时间:2012-10-30 17:32:51

标签: mysql

我正在尝试在phpMyAdmin中插入数据但返回错误:

#1064 - 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 'INSERT INTO utilizadores(nome, login, password, email, tipoacesso) VALUE' at line 1.

<`

//variáveis de estabelecer ligação à base de dados
$hostDB = "localhost";
$userDB = "root";
$passDB = "";
$nameDB = "sistemaimportacao";

//conexão à base de dados
$connectDB = mysql_connect($hostDB,$userDB,$passDB, $nameDB) or die ("não foi possível conectar: ".mysql_error());

class users{

    private $_login;
    private $_password;
    private $_tipoacesso;
    private $_nome;

    public function __construct($login, $password,$tipoacesso,$nome){
        $this->_login=$login;
        $this->_password=$password;
        $this->_tipoacesso=$tipoacesso;
        $this->_nome=$nome;
    }

    public function create(){

        $sql = "INSERT INTO users(login, password, tipoacesso, nome) 
VALUES ('$this->_login', '$this->_password', '$this->_tipoacesso','$this->_nome')";
        echo $sql;
        mysql_query($sql);
    }

}

$reg = new users("abc", "qwerty", "1", "edgar");
$reg->create();

>`

我确信表格和字段的名称是正确的。

有人可以帮助我吗?

谢谢。

2 个答案:

答案 0 :(得分:1)

尝试在password值附近加上引号,它可能不是整数数据类型:

INSERT INTO utilizadores(nome, login, password, email, tipoacesso) 
VALUES ('Edgar', 'apolo90', '123456','edgar@edgar.pt',1)

答案 1 :(得分:0)

您在列名中使用了关键字(password是关键字),将它们封装在向后的标记中以避免歧义。

INSERT INTO `users`(`login`, `password`, `tipoacesso`, `nome`) 
VALUES ('$this->_login', '$this->_password', '$this->_tipoacesso','$this->_nome')