为什么我的php crud操作在本地主机上工作,而不是在服务器上工作?
我有一个create函数,它在localhost上运行良好,但在我的服务器上不起作用。我的意思是,数据库中没有存储任何内容,而它是在本地主机上存储的。顺便说一下,我使用winhost。代码如下:为什么我的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
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。。。。