php - 使用 PHP 更新 mysql 数据

标签 php mysql sql database

我正在尝试在我的主页上显示网站标题。该网站标题存储在名为 mywebsite 的数据库和表 settings 中。我想用输入类型文本的值更新它。标题显示完美,但是当我在文本字段中写入内容并提交时,数据库不会更新。我认为我做的一切都是正确的,并且我的页面上没有显示任何错误,但它仍然无法正常工作。谁能找出错误吗?
这是我的代码:

<?php
// Some database detail
$host = 'localhost';
$username = 'root';
$password = '';
$database = 'mywebsite';
// Making connection
$con = mysqli_connect($host, $username, $password, $database);

// Making a sql query for "Website Title" and saving it in variable $query
$query = "SELECT * FROM settings WHERE NameOfSetting='Website Title'";

// Applying query
$result = mysqli_query($con, $query);

// Fetching data from database
$row = mysqli_fetch_array($result);

if (isset($_POST['submit'])) {
    $title = $_POST['text'];
    mysqli_query($con, "UPDATE settings SET TheSetting=$title WHERE NameOfSetting='Website Title'");
}
?>

<h1><?php echo $row['TheSetting']; ?></h1>

<form method="POST">
    <input type="text" placeholder="Change the title" name="text">
    <input type="submit" name="submit">
</form>

编辑:当我在字段中输入任何数字然后提交并刷新时,它工作正常,但它仅适用于数字而不适用于字母。不知道为什么?

最佳答案

这一行:

SET TheSetting=$title

$title 需要用引号引起来:

SET TheSetting='$title'

旁注:您可能还想更改此行(作为安全预防措施):

$title = $_POST['text'];

至:

$title = mysqli_real_escape_string($con,$_POST['text']);

关于php - 使用 PHP 更新 mysql 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22395719/

相关文章:

php - 与 MySQL 数据库链接的 html 搜索表单

php - 如何调用js而不显示代码

php - 使用 2 个文本字段将多个图像上传到数据库

php - MySQL RegEx 搜索每一列

mysql - 子查询返回超过 1 行?

php - php中的sql不工作可能是编码?

PHP重构数组Paypal TransactionSearch函数

php - 自注册之日起两周后发送电子邮件

php - 尝试为每个照片库检索一张随机照片作为封面照片

mySQL 联合计算行