php - SQL 更新查询不合作

标签 php html mysql css mysqli

我在管理面板上的编辑表单底部添加了一个保存/更新按钮。出于某种原因,每当我对表单进行更改并单击“保存”时,它只会重新加载页面而不进行任何更改。我还注意到只有当我尝试从 pages.php 文件运行代码时(从索引运行然后点击页面就可以了)它说:

Undefined variable: dbc in C:\Users\Jake\Desktop\Xampp\htdocs\jakefordsite\admin\content\pages.php on line 12

Warning: mysqli_query() expects parameter 1 to be mysqli, null given in C:\Users\Jake\Desktop\Xampp\htdocs\jakefordsite\admin\content\pages.php on line 12

我可以通过在 pages.php 中声明一个新的 $dbc(databaseconnection) 变量来消除这个错误,但是我在更新表单数据时仍然遇到同样的问题。

页面.PHP:

<?php ## Page Manager ?>

<h2>Page Manager</h2>

<div class="col sidebar">

    <ul>

        <?php

           $q = "SELECT * FROM pages ORDER BY name ASC"; 
           $r = mysqli_query($dbc, $q);

           if ($r)
           {
                while ($link = mysqli_fetch_assoc($r))
                {
                    echo '<li><a href="?page=pages&id='.$link['id'].'">'.$link['name'].'</a></li>';
                }
           }

        ?>

    </ul>
</div>

<div class="col editor">

    <?php

     if (isset($_POST['submitted']) == 1) { 

            $q = "UPDATE pages SET title='$_POST[title]', name='$_POST[name]', body='$_POST[body]', WHERE id = '$_POST[id]'"; 
            $r = mysqli_query($dbc, $q);

     }

     if (isset($_GET['id'])) { 

            $q = "SELECT * FROM pages WHERE id = '$_GET[id]' LIMIT 1";
;  
            $r = mysqli_query($dbc, $q);
            $opened = mysqli_fetch_assoc($r);


    ?>

        <form action="?page=pages&id=<?php echo $opened['id'] ?>" method="post">

            <p><label>Page title: </label><input type="text" size="30" name="title" value="<?php echo $opened['title']?>"></p>
            <p><label>Page name:</label> <input type="text" size="30" name="name" value="<?php echo $opened['name']?>"></p> 

            <label>Page body: </label><br>
            <textarea name="body" cols="30" rows="8"><?php echo $opened['body'] ?></textarea>

               <input type="hidden" name="submitted" value="1"/>
               <input type="hidden" name="id" value="<?php echo $opened['id'] ?>"/>

             <p><input type="submit" name="submit" value="Save Changes"/></p>

        </form>

    <?php } ?>

</div>

索引.PHP:

<?php
// Setup document:
include('config/setup.php');
?>

<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title><?php //echo $page_title; ?>JakeForDesign - Admin Panel</title>
<link rel="stylesheet" type="text/css" href="css/styles.css">

</head>

<body>

<div class="wrap_overall">

    <div class="header"> <?php head(); ?> </div>

    <div class="nav_main"> <?php nav_main(); ?> </div>

    <div class="content"> <?php include('content/'.$pg.'.php'); ?> </div>

    <div class="footer"> <?php footer(); ?> </div>

</div>    

</body>
</html>

安装.PHP

<?php
## Setup Document

// host(or location of the database), username, //password, database name

$dbc = @mysqli_connect('127.0.0.1', 'root', 'password', 'main') OR die ('Could not connect to the database because: '. mysqli_connect_error() );

include('Functions/sandbox.php');
include('Functions/template.php');

if (isset($_GET['page']) == '')
{
    $pg = 'home';       
}
else
{
    $pg = $_GET['page'];
}

$page_title = get_page_title($dbc, $pg);

?>

最佳答案

Pages.php 上你有

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

$q 可以,但您没有提到 $dbc

在您的设置页面上,创建一个连接类,声明一个连接方法,然后在PAGES.PHP上:

$db_obj =  new setup();  /* create object for setup class */
$dbc = $db_obj -> connect_db();/* call connection method */

关于php - SQL 更新查询不合作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20089603/

相关文章:

php - 如何在 ubuntu 上显示 php 中的错误?

html - 资源不可用 Apache Tomcat

mysql - 如果 EXISTS (MYSQL) 只得到这个结果

php - PHP或MySQL中有下限和上限检查功能吗?

php - 从联合表mysql中获取表名

php - mysqli批量查询推荐

php - 在 phpmyadmin 中编辑数组行并破坏它

php - 在链接内传递变量仅适用于多词变量中的第一个词,为什么?

javascript - 多次更改 onclick() 函数(背景图像更改)

html - 如何动态设置由背景图像创建的 SVG 的颜色?