Php 用OOP将表单中的数据插入数据库

Php 用OOP将表单中的数据插入数据库,php,oop,Php,Oop,我试图以面向对象的方式将表单中的数据插入到数据库中,但没有插入数据。为什么不呢 class users { var $username; var $password; var $conection; var $tablename = usertable; function mysqldb() { $this->conection = mysql_connect("local host", "root", "") or die(mys

我试图以面向对象的方式将表单中的数据插入到数据库中,但没有插入数据。为什么不呢

class users {
    var $username;
    var $password;
    var $conection;
    var $tablename = usertable;

    function mysqldb() {
        $this->conection = mysql_connect("local host", "root", "") or die(mysql_error());
        mysql_select_db("this->tablename");
    }

    function insertdb() {
        $query = mysql_query("INSERT INTO $this->tablename values ('', '$user', '$pass')");
        $result = mysql_query($query);
        if(!$result) die("Query didn't work. " . mysql_error());
    }
}

$user1 = new users;
$user1->username = $_POST["user"];
$user1->password = $_POST["pass"];
$user1->insertdb();

第一个问题是主机名错误。使用
localhost
,而不是
localhost


现在,您需要转义数据,否则您将遇到麻烦!我建议完全抛弃您在
mysql\uuuu
函数方面拥有的功能,以及。

您拥有
mysql\u select\u db(“this->tablename”)

您需要
mysql\u选择\u db($this->tablename)

这至少是我看到的眼前的问题。您应该真正检查哪个数据库能够将数据提取到类和对象中。最好是全方位练习

$this->conection = mysql_connect("local host", "root", "")
localhost
应该是
localhost


最后两个变量都没有定义-您可能指的是
$this->username
$this->password
。您也可能正面临一些SQL注入漏洞——检查PDO和准备好的语句。如果这是针对一个实际的web应用程序,那么开始对密码进行加密和散列


“this->tablename”
应该是
$this->tablename


您一开始也不会调用
mysqldb()
;您需要在尝试插入数据库之前执行此操作

$user1->mysqldb();

实例化类后,调用insertdb()方法,但没有连接到数据库的地方。您必须先调用mysqldb()

请努力至少输入完整的单词和句子。这表明你很关心:)几乎可以肯定,你的意思是连接到
localhost
,而不是
localhost
——空间没有被删除。这是我在stalkoverflow上的第一篇文章,仍在学习根据所需格式修改代码。请不要使用
mysql.*
函数编写新代码。它们不再得到维护,社区已经开始。看到了吗?相反,你应该学习并使用或。如果你不能决定哪一个,我会帮你的。如果你选择PDO,.no。mysql\u选择\u db($string)excepts string作为参数。在本例中,“$this->tablename”===$this->tablename=>true,因为它们的计算结果都是字符串type@RasimFryal的代码有
this->tablename
注意缺少的
$
。谢谢你,我把本地主机改成了本地主机,名为mysqldb()和$to“this->tablename”。但数据仍然不可靠inserted@RasimFryal:你能用你的新代码更新帖子吗?此外,请确保已打开警告。您是否收到任何警告?这些是警告通知:在第31行的C:\xampp\htdocs\nn\login.php中使用未定义常量usertable-假定为“usertable”注意:未定义变量:在第22行的C:\xampp\htdocs\nn\login.php中的用户注意:未定义变量:在第22行的C:\xampp\htdocs\nn\login.php中传递查询不起作用。问题是empty@RasimFryal:您忘记了第二组更改。
mysql_select_db("this->tablename");
$user1->mysqldb();