简体   繁体   English

数据未保存在我的数据库中

[英]Data not being saved in my database

I hope you are doing great. 我希望你做得很好。 I'm having a problem where I cannot insert data into my database. 我遇到了无法将数据插入数据库的问题。 There are multiple reasons to why that happens so don't consider it a duplicate question please. 发生这种情况的原因有多种,因此请不要将其视为重复的问题。 I checked my code. 我检查了我的代码。 For one table it saves the data but for this table. 对于一张表,它保存数据,但对于此表。 It displays that the same page was not found and no data is saved on the local database. 它显示未找到同一页面,并且没有数据保存在本地数据库中。 I hope you can help me guys. 我希望你能帮助我。 Thanks in advance. 提前致谢。 :) Here are some useful pieces of code: :)以下是一些有用的代码段:

    <?php
include 'Header.php';
?>
<style>
    #first {
        //margin-right: 100%;
        //clear: both;

    }
    #first > img {
        display: inline-block;
        //float: left;
    }
    #first > p {
        //float: left;
        display: inline-block;
        //margin-left: 60px;
        //margin-bottom: 120px;
    }

</style>
<!-- Post content here -->

<!-- Then cmments below -->
<h1>Comments</h1>
<!--<?php ?>
if (isset($_GET['id'])) {
    $id = $_GET['id'];
} elseif (isset($_POST['id'])) {
    $id = $_POST['id'];
} else {
    echo '<p class="error"> Error has occured</p>';

    include 'footer.html';

    exit();
}

$db = new Database();
  $dbc = $db->getConnection();

  $display = 10; //number of records per page
  $pages;

if(isset($_GET['p']) ) //already calculated
{
    $pages=$_GET['p'];  
}
else
{
//use select count() to find the number of users on the DB    
    $q = "select count(comment_id) from comments";
    $r = mysqli_query($dbc, $q);
    $row = mysqli_fetch_array($r, MYSQLI_NUM);
    $records=$row[0];

    if($records > $display ) //calculate the number of pages we will need
      $pages=ceil($records/$display);  
    else
      $pages = 1;
}

//now determine where in the database to start 
if(isset($_GET['s']) ) //already calculated
   $start=$_GET['s'];  
else
    $start = 0;

 //use LIMIT to specify a range of records to select 
 // for example LIMIT 11,10 will select the 10 records starting from record 11
  $q = "select * from users order by $orderby LIMIT $start, $display";

  $r = mysqli_query($dbc, $q);

/*if ($r)
{*/

$result = mysql_query("SELECT * FROM comments WHERE video_id= '" + + "'");
//0 should be the current post's id
while($row = mysql_fetch_object($result))
{
?>
<div class="comment">
By: <!--<?php /* echo $row->author; //Or similar in your table ?>
  <p>
  <?php echo $row->body; ?>
  </p>
  </div>
  <?php
  /*} */
?>*/-->
<h1>Leave a comment:</h1>
<form action="Comment.php" method="post">
    <!-- Here the shit they must fill out -->
    <input type="text" name="comment" value="" />
    <input type="hidden" name="submitted" value="TRUE" />
    <input type="submit" name="submit" value="Insert"/>
</form>';

<?php
if (isset($_POST['submitted'])) {
    $comment = '';

    $errors = array();

    if (empty($_POST['comment']))
        $errors[] = 'You should enter a comment to be saved';
    else
        $comment = trim($_POST['comment']);



    if (empty($errors)) {
        include 'Comments_1.php';
        $comment_2 = new Comments();
        $errors = $comment_2->isValid();
        $comment_2->Comment = trim($_POST['comment']);
        $comment_2->UserName = hamed871;
        $comment_2->Video_Id = 1;
        if ($comment_2->save()) {
            echo '<div class="div_1"><div id="div_2">' .
            '<h1>Thank you</h1><p> your comment has been'
                    . ' posted successfully</p></div></div>';
        }
    }
//First check if everything is filled in
    /* if(/*some statements *//* )
      {
      //Do a mysql_real_escape_string() to all fields

      //Then insert comment
      mysql_query("INSERT INTO comments VALUES ($author,$postid,$body,$etc)");
      }
      else
      {
      die("Fill out everything please. Mkay.");
      }
      ?>

      id (auto incremented)
      name
      email
      text
      datetime
      approved--> */
}
    ?>
    <!--echo '--><div id="first">
        <img src="http://www.extremetech.com/wp-content/uploads/2013/11/emp-blast.jpg?type=square" height="42" width="42"/>
        <p>hamed1</p>
    </div><!--';-->
    <dl>
        <dt>comment1</dt>
        <dd>reply1</dd>
        <dd>reply2</dd>
    </dl>
    <!--//}
    /*else
    {

    }*/
    ?>-->
    <?php
    include 'Footer.php';
    ?>

My Comment class: 我的评论课:

    <?php

include_once "DBConn.php";

class Comments extends DBConn {
    private $tableName = 'Comments';
    //attributes to represent table columns
    public $comment_Id = 0;
    public $Comment;
    public $UserName;
    public $Video_Id;
    public $Date_Time;

    public function save() {
        if ($this->getDBConnection()) {
            //escape any special characters
            $this->Comment = mysqli_real_escape_string($this->dbc, $this->Comment);
            $this->UserName = mysqli_real_escape_string($this->dbc, $this->UserName);
            $this->Video_Id = mysqli_real_escape_string($this->dbc, $this->Video_Id);

            if ($this->comment_Id == null) {
                $q = 'INSERT INTO comments(Comment, User_Id, Video_Id, Date_Time) values' .
                        "('" . $this->Comment . "','" . $this->User_Id . "','" . $this->Video_Id . "',NOW()')";
            } else {
                $q = "update Comments set Comment='" . $this->Comment . "', Date_Time='" . NOW() ."'";
            }


            //   $q = "call SaveUser2($this->userId,'$this->firstName','$this->lastName','$this->email','$this->password')";

            $r = mysqli_query($this->dbc, $q);

            if (!$r) {
                $this->displayError($q);
                return false;
            }

            return true;
        } else {
            echo '<p class="error">Could not connect to database</p>';
            return false;
        }

        return true;
    }

//end of function
    public function get($video_id) {
        if ($this->getDBConnection()) {

            $q = "SELECT Comment, Date_Time, UserName FROM Comments WHERE Video='" . $userName."' order by time_stamp";
            $r = mysqli_query($this->dbc, $q);

            if ($r) {
                $row = mysqli_fetch_array($r); 
                $this->Comment = mysqli_real_escape_string($this->dbc, $this->Comment);


                return true;
            }
            else
                $this->displayError($q);
        }
        else
            echo '<p class="error">Could not connect to database</p>';

        return false;
    }

    public function isValid() {
        //declare array to hold any errors messages  
        $errors = array();

        if (empty($this->Comment))
            $errors[] = 'You should enter a comment to be saved';
        return $errors;
    }
}
?>

Output show when I click insert button: 单击插入按钮时显示输出:
Not Found 未找到

The requested URL /IndividualProject/Comment.php was not found on this server. 在此服务器上找不到请求的URL /IndividualProject/Comment.php。 Apache/2.4.17 (Win64) PHP/5.6.16 Server at localhost Port 80 本地端口80上的Apache / 2.4.17(Win64)PHP / 5.6.16服务器

I encountered this kind of issue when working on a staging site because webhosting may have different kinds of restrictions and strict. 在登台站点上工作时,我遇到了此类问题,因为虚拟主机可能有不同种类的限制和严格要求。 Now what I did is changing the filename for example: 现在我所做的就是更改文件名,例如:

Class name should match the filename coz it's case sensitive. 类名应与文件名匹配,因为它区分大小写。

Comment.php Comment.php

class Comment extends DBConn {

function __construct () {
parent::__construct ();
}

//code here..

 }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM