gpt4 book ai didi

php - CRUD PDO 在 XAMPP 上工作但不在实时服务器上工作

转载 作者:行者123 更新时间:2023-11-30 21:48:34 26 4
gpt4 key购买 nike

我正在尝试使用 PDO 更新和添加帖子到自定义编码的博客。

我可以正常阅读和删除,但无法在实时服务器上添加或编辑帖子。

它在 XAMPP 上运行良好...

我已确保在我的数据库上启用了 PDO_mysql 扩展。

不知道问题出在哪里?

我的 EDIT POST 代码如下所示:

<?php

//if form has been submitted process it
if(isset($_POST['submit'])){

//collect form data
extract($_POST);

//very basic validation
if($postID ==''){
$error[] = 'This post is missing a valid id!.';
}

if($postTitle ==''){
$error[] = 'Please enter the title.';
}

if($postDesc ==''){
$error[] = 'Please enter the description.';
}

if($postCont ==''){
$error[] = 'Please enter the content.';
}

if(!isset($error)){

try {

$postSlug = slug($postTitle);

//insert into database
$stmt = $db->prepare('UPDATE blog_posts_seo SET postTitle = :postTitle, postSlug = :postSlug, postDesc = :postDesc, postCont = :postCont WHERE postID = :postID') ;
$stmt->execute(array(
':postTitle' => $postTitle,
':postSlug' => $postSlug,
':postDesc' => $postDesc,
':postCont' => $postCont,
':postID' => $postID
));

//delete all items with the current postID
$stmt = $db->prepare('DELETE FROM blog_post_cats WHERE postID = :postID');
$stmt->execute(array(':postID' => $postID));

if(is_array($catID)){
foreach($_POST['catID'] as $catID){
$stmt = $db->prepare('INSERT INTO blog_post_cats (postID,catID)VALUES(:postID,:catID)');
$stmt->execute(array(
':postID' => $postID,
':catID' => $catID
));
}
}

//redirect to index page
header('Location: index.php?action=updated');
exit;

} catch(PDOException $e) {
echo $e->getMessage();
}

}

}

?>


<?php
//check for any errors
if(isset($error)){
foreach($error as $error){
echo $error.'<br />';
}
}

try {

$stmt = $db->prepare('SELECT postID, postTitle, postDesc, postCont FROM blog_posts_seo WHERE postID = :postID') ;
$stmt->execute(array(':postID' => $_GET['id']));
$row = $stmt->fetch();

} catch(PDOException $e) {
echo $e->getMessage();
}

?>

我的 ADD POST 代码是

<?php

//if form has been submitted process it
if(isset($_POST['submit'])){

//collect form data
extract($_POST);

//very basic validation
if($postTitle ==''){
$error[] = 'Please enter the title.';
}

if($postDesc ==''){
$error[] = 'Please enter the description.';
}

if($postCont ==''){
$error[] = 'Please enter the content.';
}

if(!isset($error)){

try {

$postSlug = slug($postTitle);

//insert into database
$stmt = $db->prepare('INSERT INTO blog_posts_seo (postTitle,postSlug,postDesc,postCont,postDate) VALUES (:postTitle, :postSlug, :postDesc, :postCont, :postDate)') ;
$stmt->execute(array(
':postTitle' => $postTitle,
':postSlug' => $postSlug,
':postDesc' => $postDesc,
':postCont' => $postCont,
':postDate' => date('Y-m-d H:i:s')
));
$postID = $db->lastInsertId();

//redirect to index page
header('Location: index.php?action=added');
exit;

} catch(PDOException $e) {
echo $e->getMessage();
}

}

}

//check for any errors
if(isset($error)){
foreach($error as $error){
echo '<p class="error">'.$error.'</p>';
}
}
?>

是否有什么我应该检查 MySQL 数据库的,或者我的代码中是否有什么东西阻止我的 CRUD 在实时环境中工作?

如前所述,完全相同的代码(配置文件除外)正在 XAMPP 上运行。

最佳答案

这可能是服务器端的权限错误,因为您无法编辑(写入)文件或创建新文件。我建议检查用户对数据库的权限。

当你说它不起作用时,它返回给你的是什么?您是否尝试过 var_dump 或 echo(如果它用作查询),或者它根本不允许执行查询?

更新:最后但同样重要的是,正如评论所建议的那样,配置文件应该是主要问题。这实际上取决于您如何配置文件以在服务器上工作。检查包括等。

关于php - CRUD PDO 在 XAMPP 上工作但不在实时服务器上工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48328781/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com