【问题标题】:Why this PHP Code won't add the data to the MySQL DB?为什么此 PHP 代码不会将数据添加到 MySQL 数据库?
【发布时间】:2016-02-15 15:13:34
【问题描述】:

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

【问题讨论】:

  • 你能描述一下你的桌子吗?名字和所有...?
  • 查看您的错误日志,您会发现问题所在。
  • 我猜你忘了打电话给$mysqli-&gt;commit();
  • 刚刚添加了$mysqli-&gt;commit(); 并完美运行。 非常感谢@simon !! .

标签: php mysql database mysqli


【解决方案1】:

您必须在 $mysqli-&gt;close(); 之前添加 $mysqli-&gt;commit(); 才能将您的更改持久保存到数据库中。

【讨论】:

    【解决方案2】:

    你的代码上面有这个:

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

    换句话说,您将针对 MySQL 服务器所做的所有事情都包装在一个事务中。

    您的选择是:

    【讨论】:

      猜你喜欢
      • 2019-09-18
      • 1970-01-01
      • 1970-01-01
      • 2017-01-15
      • 2015-05-04
      • 2017-07-22
      • 2014-04-17
      • 2017-07-14
      相关资源
      最近更新 更多