php - 在 protected 页面上使用 SQL 编辑数据库中的文本

标签 php mysql sql database

我想为自己创建一个小CMS,这样我就可以在 protected 页面上编辑我的文本内容。我已经有一个页面,我可以在文本区域(test.php)中看到我的文本,但是当我点击编辑按钮时它不起作用。

谁能帮助我? :)

ps,为了安全起见,数据库配置已被删除...

//测试.php

<code>
<?php
// CONNECT TO THE DATABASE
    $DB_NAME = '';
    $DB_HOST = '';
    $DB_USER = '';
    $DB_PASS = '';

    $mysqli = new mysqli($DB_HOST, $DB_USER, $DB_PASS, $DB_NAME);

    if (mysqli_connect_errno()) {
        printf("Connect failed: %s\n", mysqli_connect_error());
        exit();
    }
    echo'<h1> All users</h1><br>';
// A QUICK QUERY ON A FAKE USER TABLE
    $query = "SELECT * FROM `categorien` WHERE `categorie_id`";
    $result = $mysqli->query($query) or die($mysqli->error.__LINE__);

// GOING THROUGH THE DATA
    if($result->num_rows > 0) {
        while($row = $result->fetch_assoc()) {
    echo'
    <p>
        <form method="post" action="edit.php">
        <b>Title:</b> '.$row['categorie_naam']. '</td><br>

        <textarea name="categorie_uitleg">'.$row['categorie_uitleg'].'</textarea><br />

        <INPUT type="hidden" name="id" value='.$row['categorie_id'].'>
        <INPUT type="submit" name="edit" value="edit">
        </form>
    </p>
    ';
        }
    }
    else {
        echo 'NO RESULTS';  
    }

// CLOSE CONNECTION
    mysqli_close($mysqli);
?> 
</code>

//编辑.php

   <?php
session_start();

$servername = "";
$username = "";
$password = "";
$dbname = "";


// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 

$sql = "UPDATE `categorien` SET `categorie_uitleg` = '". $_POST['categorie_uitleg']) ."' WHERE 1";
if ($conn->query($sql) === TRUE) {
    header("Location: test.php");
        echo "Record updated successfully";
} else {
        echo "Error updating record: " . $conn->error;
}

$conn->close();
?>

最佳答案

您收到错误消息吗?

我注意到 categorie_uitleg列未获取在文本区域中编辑的新值,并且表名位于引号 (') 而不是刻度线 (`) 内:

$query = "UPDATE 'categorien' SET `categorie_uitleg` WHERE `1`";

应该是这样的:

$query = "UPDATE `categorien` SET `categorie_uitleg` = '". $_POST['categorie_uitleg']) ."' WHERE 1";

注意此查询将更新 categorien 中的所有行表!

根据评论进行编辑

<textarea>'.$row['categorie_uitleg'].'</textarea><br />

名称属性应添加到 <textarea>

<textarea name="categorie_uitleg">'.$row['categorie_uitleg'].'</textarea><br />

关于php - 在 protected 页面上使用 SQL 编辑数据库中的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32987681/

相关文章:

mysql - 如何在持续交付中为 WordPress 执行高级数据库 merge ?

java - where in 子句中没有值时如何执行查询

c# - 检索 BLOB 文件

php - 在 Node.js 中使用 PHP session (存储在 mySql 中)

mysql - phpbb3 无法显示数据库中的泰语编码

mysql - 连接等价 - 括号重载

mysql - 带文本的 dbSendQuery INSERT 语句

javascript - 与号和数字符号(& 和 #)

php - 基于数字技能值创建 "teams"的算法

php - 在 where 子句中选择具有长比较的记录的最佳技术是什么