PHP-写入MySQL数据库

PHP-写入MySQL数据库,php,mysql,database,sql-insert,Php,Mysql,Database,Sql Insert,我只是使用以下代码片段将一些值写入MySQL数据库 请注意,当我运行SELECT查询时,使用echo等正确显示信息 但是,当我尝试使用INSERT写入数据库时,代码执行时没有错误,但当我检查数据库时,没有写入任何内容 private $db; function __construct() { $this->db = new mysqli('localhost', 'xyz', '123', 'testdb'); $this->db->autocommit(FALSE)

我只是使用以下代码片段将一些值写入MySQL数据库

请注意,当我运行SELECT查询时,使用echo等正确显示信息

但是,当我尝试使用INSERT写入数据库时,代码执行时没有错误,但当我检查数据库时,没有写入任何内容

 private $db;

 function __construct() {
 $this->db = new mysqli('localhost', 'xyz', '123', 'testdb');
 $this->db->autocommit(FALSE);

if (isset($_POST["ID"]) && isset($_POST["Number"]) && isset($_POST["Address"]) && isset($_POST["Ticket"])) {

$id= $_POST["ID"];
$number= $_POST["Number"];
$address= $_POST["Address"];
$ticket= $_POST["Ticket"];

$stmt = $this->db->prepare("INSERT INTO tickets (ID, Number, Address, Ticket) VALUES (?,?,?,?)");
$stmt->bind_param("iiss", $id, $number, $address, $ticket);
$stmt->execute(); 
$stmt->close()

return true
}
任何帮助都将不胜感激

编辑


问题-这可能与对数据库的写访问有关吗?我已经检查了用户帐户权限,它拥有所有权限。

使用插入自动提交时必须为TRUE

$this->db->autocommit(TRUE);

您已经禁用了自动提交(
$this->db->autocommit(FALSE);
),并且没有明确地提交任何地方。一旦关闭连接,插入的任何内容都将回滚,就像从未更改过数据库一样。插入完成后,应该添加对
$this->db->commit()

的调用,是否确定没有错误?您没有任何输出错误的代码,如果在设置中关闭了错误报告,您将永远无法看到它。你在检查日志吗?另外,末尾缺少几个分号。你可以在没有
bind_params
(使用内联参数)的情况下运行insert查询吗?我指的是语法错误,即php代码本身没有问题。我一直在使用Curl将数据发布到上面的代码中,我知道这是可行的,因为'if'语句返回true。正如下面强调的,问题是auto_commit参数。谢谢你的贡献。d.拉耶夫-我相信我尝试过做这件事,但没有运气。Auto_Commit=TRUE解决了为您的输入确认Mureinik的问题。你自己和卢卡斯都是对的,这确实是问题所在。