【问题标题】:php script won't connect MySQLphp脚本不会连接MySQL
【发布时间】:2015-01-02 11:29:40
【问题描述】:

这是代码。由于某种原因,我无法找出它为什么不起作用。
如您所见,我添加了一个测试查询,以查看它是否会影响我的数据库上的任何更改,但不会:(
有趣的是,在另一个 php 脚本中,我成功连接了数据库,甚至通过 php 脚本向其中添加了一些记录。找不到问题,提前致谢。
顺便提一句。如您所见,我已经将 var "month" 定义为字符串 "hey" 并在 php 脚本的末尾回显它以查看它是否更改。但什么都没有发生!

  <form action="" name="form" id="form">
      <label>
          Select the month which you want to display its days.
          <select name="month" form="form" required>
            <option value="january">January</option>
            <option value="february">February</option>
            <option value="march">March</option>
            <option value="april">April</option>
            <option value="may">May</option>
            <option value="june">June</option>
            <option value="july">July</option>
            <option value="august">August</option>
            <option value="september">September</option>
            <option value="october">October</option>
            <option value="november">November</option>
            <option value="december">December</option>
          </select>
      </label>
      <input type="submit" name="update" value="Display" />
  </form>
  <?php
  $month = "hey";
  if(isset($_POST["update"]))
  {
      $month = $_POST["month"];
      $query = "SELECT * FROM `days` WHERE `month`='{$month}';";
      $conn = mysqli_connect("localhost","root","","db123");
      $result = mysqli_query($conn,$query);
      mysqli_query($conn,"INSERT INTO `days`(`month`,`day`) VALUES ('test','10');");
      if($result)
      {
          die("Sorry!");
      }
      while($row = mysqli_fetch_row($result))
      {
          echo $month;
          print_r($row);
      }
      mysqli_close($conn);
      echo $month;
  }

     ?

【问题讨论】:

  • 检查db是否连接?使用这个if($conn){echo "Connected";}else{"Not Connected"}
  • print_r($conn); 的输出是什么
  • 最后一行的&gt; 在哪里。你能给我们完整的代码吗?您的代码中没有&lt;html&gt;
  • 也应该是 if($result) 而不是 if(!$result) 仅供参考
  • @user4412293 请选择一个答案来关闭这个话题

标签: php mysql sql forms


【解决方案1】:

你没有指定方法,默认是GET if.Change这一行

 if(isset($_POST["update"]))

到这里

 if(isset($_GET["update"]))

。或者,如果您想将方法用作 POST 而不仅仅是将方法指定为 POST 使用下面的代码

 <form action="" name="form" id="form" method="POST">
      <label>
          Select the month which you want to display its days.
          <select name="month" form="form" required>
            <option value="january">January</option>
            <option value="february">February</option>
            <option value="march">March</option>
            <option value="april">April</option>
            <option value="may">May</option>
            <option value="june">June</option>
            <option value="july">July</option>
            <option value="august">August</option>
            <option value="september">September</option>
            <option value="october">October</option>
            <option value="november">November</option>
            <option value="december">December</option>
          </select>
      </label>
      <input type="submit" name="update" value="Display" />
  </form>
  <?php
  $month = "hey";
  if(isset($_POST["update"]))
  {
      $month = $_POST["month"];
      $query = "SELECT * FROM `days` WHERE `month`='{$month}';";
      $conn = mysqli_connect("localhost","root","","db123");
      $result = mysqli_query($conn,$query);
      mysqli_query($conn,"INSERT INTO `days`(`month`,`day`) VALUES ('test','10');");
      if($result)
      {
          die("Sorry!");
      }
      while($row = mysqli_fetch_row($result))
      {
          echo $month;
          print_r($row);
      }
      mysqli_close($conn);
      echo $month;
  }

     ?>

希望对你有帮助

【讨论】:

    【解决方案2】:
     <?php
      $mysqli = new mysqli("localhost", "root", "", "db123");
     if ($mysqli->connect_errno) {
     echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
      }
     $month = "hey";
     if(isset($_POST["update"]))
      {
      $month = $_POST["month"];
      $res = $mysqli->query("SELECT * FROM `days` WHERE `month`='{$month}'");
      mysqli_query($conn,"INSERT INTO `days`(`month`,`day`) VALUES ('test','10');");
      while($row = $res->num_rows)
      {
          echo $month;
          print_r($row);
      }
      mysqli_close($conn);
      echo $month;
     }
    ?>
    

    【讨论】:

      猜你喜欢
      • 2017-02-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-14
      • 2019-07-20
      • 2019-03-25
      • 2013-04-23
      • 1970-01-01
      相关资源
      最近更新 更多