插入查询成功执行,但数据未插入数据库

时间:2014-01-01 09:19:32

标签: php mysql sql database mysqli

我是php的新手,所以如果问题太愚蠢,请原谅。

我试图使用mysqli在表格上插入数据。查询成功执行并返回插入的id。但数据未插入数据库表。

导致代码的问题:

// Creating db connection
$dbObject = new DBHandler();

// Database operations
$query    = "insert into `atmt_status` (taskdate, title, description, User_Id) values (?,?,?,?)";
$stmt = $dbObject->conn->prepare($query);
if(!$stmt)
{
    die('Problem With Database');
}

$stmt->bind_param("ssss",$taskdate $title, $description, strtolower($userId));
$stmt->execute();
$stmt->close();
$insertId = mysqli_insert_id($dbObject->conn);
echo '<script type="text/javascript">alert('.$insertId.');</script>';

这成功执行并给出以下响应:

Inserted ID

但数据未插入数据库表。

##我尝试了什么:

1

尝试:

我取代了?实际值并删除

$stmt->bind_param("ssss",$taskdate $title, $description, strtolower($userId));

结果:

成功执行,返回Id:59,数据库中没有插入数据。


2

尝试:

我检查了

mysqli_query($dbObject->conn, $query) or die('Failed to insert');

结果:

成功执行,返回Id:60,数据库中没有插入数据。


3

尝试:

我检查了

$dbObject->conn->query($query);

结果:

成功执行,返回Id:61,数据库中没有插入数据。


4

尝试:

直接使用MYSQL Querybrowser

执行查询

结果:

成功执行,数据已插入ID为62的数据库。


5

尝试:

我在StackOverflow中检查了几乎所有类似问题的问题,并尝试了几乎所有答案。

结果:

没有任何改变,仍有相同的问题


过去2天我一直坚持这个问题,我尝试了很多方法,但都失败了。请帮助我,提前谢谢。

1 个答案:

答案 0 :(得分:1)

最后我修好了。

在我的代码中,我将autocommit设置为false,这就是问题所在:

$dbObject->conn,->autocommit(FALSE);

我通过将上面的代码更改为:

来修复它
$dbObject->conn,->autocommit(TRUE);

感谢a_horse_with_no_name,他的以下评论帮助我找到了问题。

  

我看到两个可能的原因:1)我没有在你的代码中看到提交 - 如果   您没有在自动提交模式下运行,更改不是   持续存在。 2)您可以看到可重复读取默认值的效果   用于检查数据的SQL客户端中的隔离级别。跑   在检查数据之前在客户端程序中提交或回滚。    - a_horse_with_no_name