我试图以面向对象的方式将表单中的数据插入到我的数据库中,但是没有插入数据。为什么不呢?
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();
答案 0 :(得分:1)
第一个问题是您的主机名错误。使用localhost
,而不是local host
。
现在,你需要逃避你的数据,否则你会遇到麻烦!我建议完全抛弃你在mysql_
函数和learn to do prepared queries with PDO方面所拥有的内容。
答案 1 :(得分:1)
在实例化类之后,调用insertdb()方法,但无法连接到数据库。你必须先调用mysqldb()!
答案 2 :(得分:0)
您有mysql_select_db("this->tablename")
您需要mysql_select_db($this->tablename)
这至少是我看到的直接问题。您应该检查PDO,它能够将数据提取到类和对象中。这是更好的练习。
答案 3 :(得分:0)
$this->conection = mysql_connect("local host", "root", "")
local host
应为localhost
。
$query = mysql_query("INSERT INTO $this->tablename values ('', '$user', '$pass')");
最后两个变量都没有定义 - 你可能意味着$this->username
和$this->password
。你也可能正好打开一些SQL注入漏洞 - 查看PDO和准备好的语句。如果这是针对实际的Web应用程序,请开始对您的密码进行salting和哈希处理。
mysql_select_db("this->tablename");
"this->tablename"
应为$this->tablename
。
你也从不打电话给mysqldb()
;在尝试插入数据库之前,您需要这样做。
$user1->mysqldb();