用户和帖子数据库问题

时间:2012-02-04 09:19:07

标签: php mysql

用户注册后,是否创建了一个sql表来存储他的帖子? 在男人将他插入我的页面后,我在mysql中使它类似。数据库名称相同,但在第一次登录时会生成表名。

class Users
{
    var $username="root";
    var $password="pass";
    var $database="InsertIntoStackOverflow";
    var $table_name="";
    public function Users($username)
    {
       $table_name=$username."_tb";
       echo $table_name."<br/>";
       mysql_connect(localhost,$username, $password) or die("unable to connect to database ".mysql_error());
       echo $database."<br/>";
       mysql_selectdb($database) or die("unable to select db ".mysql_error());
       $query="CREATE TABLE ".$table_name." (id tinyint(4) NOT NULL AUTO_INCREMENT, title VARCHAR(128) NOT NULL, date_post VARCHAR(100), date_edit VARCHAR(100), post_content TEXT NOT NULL)";
       mysql_query($query) or die("Unable to create table. ".mysql_error());        
    }
}

但它只显示table_name和错误,不显示数据库名称。错误是NO DATABASE IS SELECTED /

修改

这个课程在他注册后打电话 我也有一个功能postApost但我什么时候

ob_start();
session_start();
require("Users_DB.php");
$name=$_SESSION['user'];
echo 'Welcome '.$name;
$username=new UserDB($name);

没有创建表格

2 个答案:

答案 0 :(得分:1)

两个同名$username的变量。使用$this访问类的变量。缺少引号(“)与localhost - 它必须是字符串类型参数。并且此代码无法在数据库上创建表,因为您在代码上使用AUTO_INCREMENT但忘记将其作为{{1我认为以下代码可以为您提供很多帮助。

PRIMARY KEY

您可以通过以下方式使用此课程:

class Users
{
    var $username="root";
    var $password="pass";
    var $database="InsertIntoStackOverflow";
    var $table_name="";

    function __construct($user_name)
    {
       $this->table_name=$user_name."_tb";
       echo $this->table_name."<br/>";
       mysql_connect("localhost",$this->username, $this->password) or die("unable to connect to database ".mysql_error());
       echo $this->database."<br/>";
       mysql_selectdb($this->database) or die("unable to select db ".mysql_error());
       $query="CREATE TABLE ".$this->table_name." (id tinyint(4) NOT NULL AUTO_INCREMENT, title VARCHAR(128) NOT NULL, date_post VARCHAR(100), date_edit VARCHAR(100), post_content TEXT NOT NULL, PRIMARY KEY (id))";
       mysql_query($query) or die("Unable to create table. ".mysql_error());        
    }
}

答案 1 :(得分:1)

创建一个表:

CREATE TABLE Posts (
    id TINYINT(4) NOT NULL AUTO_INCREMENT,
    user VARCHAR(20) NOT NULL,
    title VARCHAR(128) NOT NULL,
    date_post DATETIME,
    date_edit DATETIME,
    post_content TEXT NOT NULL
)

插入新帖子:

$insert = "
INSERT INTO Posts (
    user,
    title,
    date_post,
    date_edit,
    post_content
) VALUES (
    '$username',
    '$title',
    NOW(),
    NOW(),
    '$post_content'
)
";

更新很简单:

$update = "
UPDATE Posts SET
    title = '$title',
    post_content = '$post_content',
    date_edit = NOW()
WHERE id = '$postid';
";

获取用户的所有帖子:

$posts = "
SELECT title, date_post, date_edit, post_content
FROM Posts
WHERE user = '$username'
ORDER BY date_post
";