Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php包括不在主机服务器上工作,但在本地(xampp)服务器上工作_Php_Mysql - Fatal编程技术网

php包括不在主机服务器上工作,但在本地(xampp)服务器上工作

php包括不在主机服务器上工作,但在本地(xampp)服务器上工作,php,mysql,Php,Mysql,我无法解决在本地工作的东西在主机服务器上失败的原因。它连接到数据库,检索并显示数据,但检索数据并包含表单失败。希望我已经包含了足够的代码 首先检索并显示数据: /*------------------- DISPLAY ACCESSORIES ------------------*/ if(isset($_GET['table']) && $_GET['table'] === "accessories") { $table = 'accessories';

我无法解决在本地工作的东西在主机服务器上失败的原因。它连接到数据库,检索并显示数据,但检索数据并包含表单失败。希望我已经包含了足够的代码

首先检索并显示数据:

/*-------------------  DISPLAY ACCESSORIES ------------------*/
if(isset($_GET['table']) && $_GET['table'] === "accessories") 
{
    $table = 'accessories';      

    include '../includes/dbconnect.php';    

    try {
        $result = $db->query("SELECT * FROM $table");

        while($row = $result->fetch(PDO::FETCH_ASSOC)){

            $accessories[] = array(
                'id' => $row['id'],
                'buy_link' => $row['buy_link'],
                'img' => $row['img'],
                'item_number' => $row['item_number'],
                'name' => $row['name'],
                'description' => $row['description'],
                'laser_series' => $row['laser_series'],
                'laser_model' => $row['laser_model'],
                'quantity' => $row['quantity'],
                'price' => $row['price'],
            );
        }
    }   
    catch (PDOException $e)
    {
       $error = 'Error fetching data.' . $e->getMessage();
       include 'error.html.php';
       exit();
    }

    try {
        $sql2 = 'DESCRIBE accessories';
        $s2= $db->prepare($sql2);
        $s2->execute();
        $table_fields = $s2->fetchAll(PDO::FETCH_COLUMN);
    }
    catch (PDOException $e)
    {
        $error = 'Error fetching data from database.';
        include 'error.html.php';
        exit();
    }

    // Close database connection
    $db = null;

    // Display data on included page
    include 'display-accessories.html.php';
    exit();
}
然后,在用户希望编辑的行中,单击编辑按钮。以下是html:

<form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" method="post">
    <input type="hidden" name="id" value="<?php htmlout($accessory['id']); ?>"> 
    <button class="btn btn-default btn-sm" type="submit" name="action" value="edit_accessories">Edit</button>
</form>

如果有人知道为什么这不起作用,我欢迎你的见解

只要换句话:

FROM:“../includes/dbconnect.php”

收件人:$_SERVER['DOCUMENT_ROOT']./includes/dbconnect.php'


在服务器中,路径不能写为“../”,因为有一个完全不同的服务器路径配置。

帮个忙,只需在接收表单提交的PHP页面中放置一个
print\r($\u POST)
var\u dump($\u POST)
。填写表格,提交并仔细查看打印到屏幕上的数据。熟悉表单数据是如何发布到脚本的,包括传递什么和不传递什么。我知道您没有输入
if
语句。请更改为
require
,而不是
include
,然后查看脚本是否在此时中止。你只是假设它加载正确。@JayBlanchard谢谢你的回复。我担心我对问题的描述可能模棱两可。表单发布的唯一数据是项目ID和操作值(“编辑附件”)。php脚本只需要项目ID就可以检索其他字段并将它们显示在包含的表单上(不会在主机服务器上显示,但在本地可以正常工作)。@MarcB。谢谢你的回复。这是一个好主意,但是使用require而不是include并不能使它工作或生成错误消息。啊,但是由于脚本没有出现“未能包含”错误,因此文件存在,这意味着它已加载。所以现在你必须看看文件中有什么会导致它什么也不输出。我很高兴你花时间回答这个“老”帖子。你的回答解决了问题!非常感谢你!不客气!事实上,我无意中进入了这个问题的讨论。。。我不是一个PHP程序员。。。不知道人们怎么没有直接回答这么简单的问题:)
/*-------------------  EDIT ACCESSORIES ------------------*/
if(isset($_POST['action']) && $_POST['action'] === "edit_accessories") 
{
    // Assign name of table being queried to variable
    $table = 'accessories';

    // Sanitize posted data
    $id = sanitize($_POST['id']);

    // Connect to database
    include '../includes/dbconnect.php';

    try {
        $sql = "SELECT * FROM $table WHERE id = :id"; 
        $s = $db->prepare($sql);
        $s->bindValue(':id', $id);
        $s->execute();
    }
    catch (PDOException $e)
    {
        $error = 'Error fetching data.' . $e->getMessage();
        include 'error.html.php';
        exit();
    }

    // Store single row result in $item associative array
    $item = $s->fetch(PDO::FETCH_ASSOC);  

    // Close database connection
    $db = null;

    // Display row content in form
    include 'edit-accessories-form.html.php';
    exit();
}