我正在尝试在我的主页上显示网站标题。该网站标题存储在名为 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/