【问题标题】:PHP INSERT INTO MySQL not working? [duplicate]PHP INSERT INTO MySQL 不工作? [复制]
【发布时间】:2017-03-28 14:19:18
【问题描述】:

当我尝试向我的数据库中插入任何内容时,它不会显示任何错误,但数据不在数据库中。我检查了表名和结构,这就是它的方式......

SELECT 是一个试用版,除了上面的 INSERT INTO 之外,它工作正常,但为什么呢?

<?php
    error_reporting(0);
    require "../database/MySQL.php";

    $sql = "INSERT INTO zb_employees (name, option, image_path, email) VALUES ('1', '2', '3', '4')";
    $db->query($sql);
    echo $db->affected_rows;

    echo '<br>';

    $sql = "SELECT * FROM zb_employees";
    $result = $db->query($sql);

    if ( $result->num_rows > 0 ) {
      while($row = $result->fetch_assoc()) {
        $row["name"];
      }
    } else {
      echo "0 Employees found!";
    }

    $db->close();

【问题讨论】:

  • option 是保留关键字。在它周围加上反引号,比如`option`
  • 在单词 option 周围放置反引号
  • 您没有检查 query() 函数返回的错误。

标签: php mysql oop


【解决方案1】:

option 是 MYSQL 中的保留字。因此,您需要添加反引号以使其可以接受

阅读更多on reserved words in MYSQL

<?php
    //turn this on when in development.
            error_reporting(-1);



     $sql = "INSERT INTO zb_employees (`name`, `option`, `image_path`, `email`) VALUES ('1', '2', '3', '4')";
            $db->query($sql);
            echo $db->affected_rows;

还可以考虑使用准备好的语句。有助于防止 SQL 注入

【讨论】:

  • 虽然解决方案是正确的,但一个好的答案也应该用文字描述解决方案,而不仅仅是转储一些代码。而且它是重复的,所以它应该被标记为这样,最好不要回答它。
  • omg... 没想到这个,谢谢它解决了问题!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-05-16
  • 2014-03-17
  • 2012-09-28
  • 2011-05-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多