php mysql错误,没有上传数据

时间:2012-10-19 09:13:47

标签: php mysql

我有这个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;
}

2 个答案:

答案 0 :(得分:3)

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

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

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

答案 1 :(得分:2)

尝试使用`而不是'作为tablename

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

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