为什么这个PHP代码不能将数据添加到MySQL数据库?

时间:2016-02-15 15:13:35

标签: php mysql database mysqli

我是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();
?>

2 个答案:

答案 0 :(得分:1)

您必须在$mysqli->commit();之前添加$mysqli->close();才能将更改保留到数据库。

答案 1 :(得分:1)

你在代码之上有这个:

if (!$mysqli->options(MYSQLI_INIT_COMMAND, 'SET AUTOCOMMIT = 0')) {     
    die('Setting MYSQLI_INIT_COMMAND failed');
}

换句话说,你将在事务中包装你对MySQL服务器所做的一切。

您的选择是: