为什么我的php crud操作在本地主机上工作,而不是在服务器上工作?

为什么我的php crud操作在本地主机上工作,而不是在服务器上工作?,php,server,localhost,Php,Server,Localhost,我有一个create函数,它在localhost上运行良好,但在我的服务器上不起作用。我的意思是,数据库中没有存储任何内容,而它是在本地主机上存储的。顺便说一下,我使用winhost。代码如下: public function create ($title, $content, $date, $price){ $db = Dbclass::getDB(); $query = "INSERT INTO upcoming_albums (albums_title, albums_con

我有一个create函数,它在localhost上运行良好,但在我的服务器上不起作用。我的意思是,数据库中没有存储任何内容,而它是在本地主机上存储的。顺便说一下,我使用winhost。代码如下:

public function create ($title, $content, $date, $price){      

$db = Dbclass::getDB();
$query = "INSERT INTO upcoming_albums (albums_title, albums_content, albums_date, albums_price, albums_img_path)
         VALUES (:title, :content, :date, :price, :path)";
$statement = $db->prepare($query);
$statement->bindParam(':title', $title, PDO::PARAM_STR, 50);
$statement->bindParam(':content', $content);
$statement->bindParam(':date', $date);
$statement->bindParam(':price', $price, PDO::PARAM_STR, 10);
$statement->bindValue(':path', $this->target_path, PDO::PARAM_STR);

$statement->execute();

} 
这是我的表格:

<form action="" enctype="multipart/form-data" method="post" id="form_c">
        <label for="title">Title:</label>
            <input type="text" name="title" id="title"/>
        <label for="content">Content:</label>
            <textarea name="content" id="content"></textarea>
        <label for="date">Release Date (RRRR-MM-DD):</label>
            <input type="text" name="date" id="date"/>
        <label for="price">Price:</label>
            <input type="text" name="price" id="price"/>
        <label for="album_img">Price:</label>
            <input type="file" name="file" id="album_img"/>
            <span>
                <?php     
                    if (isset($_POST['btn_submit'])) {
                        $upcoming_album->uploadImg();  
                    }
                ?>
            </span>
        <button type="submit" name="btn_submit">Submit</button>
    </form>
下面是与设置创建方法的表单位于同一文件中的代码:

<?php
require_once "../../controllers/admin/Album.php";
$upcoming_album = new Album;
if (isset($_POST['btn_submit'])) {
    $upcoming_album->setFile();
    $upcoming_album->create($_POST['title'],$_POST['content'],$_POST['date'],$_POST['price']);
}
$albums = $upcoming_album->read();
?>

更新方法也不起作用。然而,delete方法的工作方式很有魅力。CRUD操作在localhost中工作正常。

Okies!。但在您看来,PHP crud在本地服务器上运行良好,但在服务器上运行不好。问题可能是一些问题,如:-

您正在使用PDO在db中插入值,即您在本地主机上启用了扩展。所以它工作得很好。但它可能未在服务器中启用。因此,请尝试在PHP配置中启用。 或者您可以检查这一行。,$db=Dbclass::getDB; 如果数据库处于活动状态,则由

回声;打印_r$db;退出


错误报告全部;ini_设置“显示错误”,“1”;从为数据库查询实现一些基本的错误控制/错误处理开始–现在您忽略了可能发生的任何错误。@Abracadver我尝试过将其放在多个位置,但什么都没有发生。我应该把它放在哪里。我不知道如何在winhost上修改我的php配置。奇怪的是crud操作以前在我的服务器上运行过。2.我试过了,现在我得到了一个空白页面,上面写着PDO对象,没有扩展它的选项1。首先检查数据库连接。2.通过if检查pdo!定义了'PDO::ATTR_DRIVER_NAME'{echo'PDO unavailable';}我尝试了这个,但没有收到任何消息。克鲁德正在研究我的另一个特征。我可以储存电子邮件地址。我有一种感觉,这可能是一些愚蠢的编码错误,我没有抓住…但我复制了所有的东西。所以我意识到我今天早些时候重命名的文件仍然存在。我基本上是将crud.php复制到album.php中,并引用了album.php。现在,当我尝试删除crud.php时,它甚至在localhost中都不起作用…尝试查找到crud的连接,但仍然找不到。希望我只是错过了一些东西。所以,正如预期的那样,这是一个非常愚蠢的错误。我没有填写表单中的所有信息,我的表不需要空值。奇怪的是,当我从我的本地主机复制了完全相同的SQL时,我可以在那里输入null。。。。