我是PHP / MySQL的新手。
我从
http://www.johnmorrisonline.com/how-to-insert-form-data-into-a-mysql-database-using-php/
(顺便说一下很棒的教程)并使用它。问题是它运行顺利(没有错误),但它只是不会将新行添加到数据库中。我试图简化代码来弄清楚。如果我在PHPMyAdmin上运行查询它可以正常工作(它添加了一个新行)但是从浏览器(php脚本)赢了。
我不知道有什么不对。
我在MBP电脑上使用MAMP。
非常感谢
拉法
以下是代码:
<?php
$mysqli = mysqli_init();
if (!$mysqli) {
die('mysqli_init failed');
}
if (!$mysqli->options(MYSQLI_INIT_COMMAND, 'SET AUTOCOMMIT = 0')) {
die('Setting MYSQLI_INIT_COMMAND failed');
}
if (!$mysqli->options(MYSQLI_OPT_CONNECT_TIMEOUT, 5)) {
die('Setting MYSQLI_OPT_CONNECT_TIMEOUT failed');
}
if (!$mysqli->real_connect('localhost', 'root', 'root', 'procedimientos')) {
die('Connect Error (' . mysqli_connect_errno() . ') '
. mysqli_connect_error());
}
echo 'Success... ' . $mysqli->host_info . "\n";
// Insert our data
$sql = "INSERT INTO PROCEDIMIENTOS (`RUT`) VALUES ('1587');";
$insert = $mysqli->query($sql);
// Print response from MySQL
if ( $insert ) {
echo "Success!";
} else {
die("Error: {$mysqli->errno} : {$mysqli->error}");
}
$mysqli->close();
?>
答案 0 :(得分:1)
您必须在$mysqli->commit();
之前添加$mysqli->close();
才能将更改保留到数据库。
答案 1 :(得分:1)
你在代码之上有这个:
if (!$mysqli->options(MYSQLI_INIT_COMMAND, 'SET AUTOCOMMIT = 0')) {
die('Setting MYSQLI_INIT_COMMAND failed');
}
换句话说,你将在事务中包装你对MySQL服务器所做的一切。
您的选择是: