【问题标题】:CRUD OPERATION USING HTML and MYSQL PHP [closed]使用 HTML 和 MYSQL PHP 的 CRUD 操作 [关闭]
【发布时间】:2020-01-10 09:45:38
【问题描述】:

注意:未定义变量:第 32 行 C:\xampp\htdocs\xampp\index1.php 中的 db

  1. 警告:mysqli_query() 期望参数 1 为 mysqli,给定 null 在 C:\xampp\htdocs\xampp\index1.php 第 32 行

  2. 警告:mysqli_fetch_array() 期望参数 1 为 mysqli_result, 第 43 行 C:\xampp\htdocs\xampp\index1.php 中给出的 null 注意: 未定义变量:在线更新 C:\xampp\htdocs\xampp\index1.php 69

<!DOCTYPE html>
<html>
<head>
    <title>CRUD: CReate, Update, Delete PHP MySQL</title>
</head>
<body>
<?php if (isset($_SESSION['message'])): ?>

    <div class="msg">
        <?php
            echo $_SESSION['message'];
            unset($_SESSION['message']);
            ?>
                </div>
            <?php endif?>
            <?php
            if (isset($_GET['edit'])) {
                $id = $_GET['edit'];
                $update = true;
                $record = mysqli_query($db, "SELECT * FROM info WHERE id=$id");

                if (count($record) == 1) {
                    $n = mysqli_fetch_array($record);
                    $name = $n['name'];
                    $address = $n['address'];
                }
            }
        ?>

<?php

$results = mysqli_query($db, "SELECT * FROM info");?>

<table>
    <thead>
        <tr>
            <th>Name</th>
            <th>Address</th>
            <th colspan="2">Action</th>
        </tr>
    </thead>

    <?php while ($row = mysqli_fetch_array($results)) {?>
        <tr>
            <td><?php echo $row['name']; ?></td>
            <td><?php echo $row['address']; ?></td>
            <td>
                <a href="index.php?edit=<?php echo $row['id']; ?>" class="edit_btn" >Edit</a>
            </td>
            <td>
                <a href="server.php?del=<?php echo $row['id']; ?>" class="del_btn">Delete</a>
            </td>
        </tr>
    <?php }?>
</table>

<form>
    <form method="post" action="php_code.php" >
<input type="hidden" name="id" value="<?php echo $id; ?>">
        <div class="input-group">
            <label>Name</label>
            <input type="text" name="name" value="">
        </div>
        <div class="input-group">
            <label>Address</label>
            <input type="text" name="address" value="">
        </div>
        <div class="input-group">
            <?php if ($update == true): ?>
    <button class="btn" type="submit" name="update" style="background: #556B2F;" >update</button>
<?php else: ?>
    <button class="btn" type="submit" name="save" >Save</button>
<?php endif?>
        </div>
    </form>
</body>
</html>
                      2ND FILE

<?php
session_start();
$db = mysqli_connect('localhost', 'root', '', 'crud');

$name = "";
$address = "";
$id = 0;
$update = false;

if (isset($_POST['save'])) {
    $name = $_POST['name'];
    $address = $_POST['address'];

    mysqli_query($db, "INSERT INTO info (name, address) VALUES ('$name', '$address')");
    $_SESSION['message'] = "Address saved";
    header('location: index.php');
}
if (isset($_POST['update'])) {
    $id = $_POST['id'];
    $name = $_POST['name'];
    $address = $_POST['address'];

    mysqli_query($db, "UPDATE info SET name='$name', address='$address' WHERE id=$id");
    $_SESSION['message'] = "Address updated!";
    header('location: index.php');
}
if (isset($_GET['del'])) {
    $id = $_GET['del'];
    mysqli_query($db, "DELETE FROM info WHERE id=$id");
    $_SESSION['message'] = "Address deleted!";
    header('location: index.php');
}

【问题讨论】:

  • 注意:未定义的变量:第 32 行的 C:\xampp\htdocs\xampp\index1.php 中的 db 告诉您问题,您尝试在分配 $db 之前使用它
  • 然后告诉我怎么分配?
  • 好好看看你的第二个文件
  • 并且不要在公共服务器上使用此代码,您的 SQL 查询不安全。 sql注入是可能的。学习准备好的语句和/或如何清理你的变量 w3schools 有一些很好的例子
  • 在第二个文件中向下滚动

标签: php html mysql parameters undefined


【解决方案1】:

而且您的代码很容易受到 SQL 注入的影响

阅读 PHP Prepared 语句。 https://www.w3schools.com/php/php_mysql_prepared_statements.asp

假设文件 1 名称是 codefile.php,文件 2 包含连接是 connection.php 所以,写在 codefile.php include("connection.php") 将 codefile.php 中的 $db 更改为 $conn,就像在 connection.php 中一样,您已经在 $conn 变量中创建了连接

查看以下链接: w3schools.com/php/php_includes.asp

codefile.php

 <?php
    include("connection.php");
    $results = mysqli_query($conn, "SELECT * FROM info");
    ?>

    <!DOCTYPE html>
    <html>
    <head>
        <title>CRUD: CReate, Update, Delete PHP MySQL</title>
    </head>
    <body>
    ..................
    ..................
    ..................

连接.php

<?php
session_start();
$db_host = "localhost"; 
$db_location = " "; 
$db_name = "crud"; 
$conn= mysqli_connect ($db_host,$db_name, $db_location,$db_name)or die ("could not connect to mysql");
..................
..................
..................

【讨论】:

  • 是的,我删除了那个错误,但我仍然收到一个错误未定义变量:更新
  • 您是否在文件 1 顶部添加了包含行 @hafsahnajeeb 做一件事。在您的问题中添加您更新的代码。所以,我们可以检查新的错误。
  • 是的,错误已被删除,感谢您的支持
  • 还有一件事我的表格和表格相互碰撞你知道如何分割实际上我想说名字和位置在左边,数据输入将在右侧而不使用 CSS 和 BOOTStrap –
猜你喜欢
  • 2010-11-12
  • 1970-01-01
  • 2016-08-03
  • 2014-04-07
  • 2016-07-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多