0

我有这个 php 代码,没有抛出错误,但是数据没有插入到表中,也没有创建表,你能告诉我哪里出错了吗?

提前干杯:)

DB_Functions.php

private $db;

     // constructor
     function __construct() {
         require_once 'DB_Connect.php';
         // connecting to database
         $this->db = new DB_Connect();
         $this->db->connect();
     }

// destructor
function __destruct() {

}

 public function storeUnit($email, $units, $maint, $attent, $done) {
    $con = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD) or die (mysql_error());
    mysql_select_db(DB_DATABASE, $con);

        $format = 'Y-m-d G:i:s';
        $date = date($format);
        $result = mysql_query("CREATE TABLE IF NOT EXISTS $email( Units VARCHAR(10), Finish VARCHAR(20), Attent VARCHAR(200), Maint VARCHAR(200), created_at VARCHAR(30))",$con);
        $result = mysql_query("INSERT INTO '$email'(Units, Finish, Attent, Maint, created_at) VALUES('$units', '$done', '$attent', '$maint', '$date')");
        return true;
}
4

2 回答 2

3

这是我的第一篇文章,但我认为您的应用程序的代码架构或 OOP 设计不佳,但问题是您使用错误的引号来创建表和插入行。您需要使用这些符号来引用名称“`”,例如:

CREATE TABLE `table name` ....
INSERT INTO `table name` ....

所以我认为你必须考虑代码的安全性,使用 mysql_real_escape_string

于 2012-10-19T09:33:27.907 回答
2

尝试使用 ` 而不是 ' 作为表名

$result = mysql_query("INSERT INTO `$email`(Units, Finish, Attent, Maint, created_at) VALUES('$units', '$done', '$attent', '$maint', '$date')");

编辑:尝试查看您的数据库是否使用 InnoDB,您可以使用事务模式...所以如果禁用自动提交,您必须提交更改

于 2012-10-19T09:20:52.677 回答