gpt4 book ai didi

PHP/MySQL 仅在变量少于几个字符时更新

转载 作者:行者123 更新时间:2023-11-29 07:35:25 25 4
gpt4 key购买 nike

我正在运行更新查询,以便可以更新数据库中的事件。

例如事件记录表:

table from mysql

现在,当我想编辑记录时,我将当前的所有数据导入并显示在网页上,以便用户可以编辑数据,如图所示:

page with prefilled info

但是,如果我提交该页面并且事件描述超过几个字符,则它根本不会更新。这是我的 PHP/MySQL 代码:

$event_title=$_POST['event_title'];
$event_desc=$_POST['event_desc'];
$event_date_start = $_POST['event_date_start'];
$event_date_end = $_POST['event_date_end'];
$db = mysql_select_db("millyaca_events", $connection);

mysql_query("UPDATE events set event_title='$event_title', event_desc='$event_desc', event_date_start='$event_date_start', event_date_end='$event_date_end' where unique_ID='$ID'", $connection);

刚刚开始学习 PHP 和 MySQL,所以如果这是一个非常愚蠢的错误,我深表歉意。

这是完整的提交按钮脚本:

if (isset($_POST['submit'])) {
$ID = $_GET['ID'];
$event_title=$_POST['event_title'];
$event_desc=$_POST['event_desc'];
$event_date_start = $_POST['event_date_start'];
$event_date_end = $_POST['event_date_end'];
// Establishing Connection with Server by passing server_name, user_id and password as a parameter
$connection = mysql_connect("localhost", "removed username", "removed password");
// Selecting Database
$db = mysql_select_db("millyaca_events", $connection);
// SQL query to fetch information of registerd users and finds user match.
mysql_query("UPDATE events set event_title='$event_title', event_desc='$event_desc', event_date_start='$event_date_start', event_date_end='$event_date_end' where unique_ID='$ID'", $connection);
mysql_close($connection); // Closing Connection
header("location: https://www.millyacademy.com/admin-zone/events_management/"); // Redirecting To Other Page
}

最佳答案

根据评论,我们已将其调试为传递给查询的数据中的撇号/引号。要使用当前的数据库驱动程序解决此问题,请使用 mysql_real_escape_string, http://php.net/manual/en/function.mysql-real-escape-string.php .

您将来应该切换到 MySQLi 或 PDO 并使用准备好的语句。

这是使用您当前代码的功能用法(未经测试,所以可能不起作用?)。

if (isset($_POST['submit'])) {
$ID = (int)$_GET['ID']; //force this to an int, or you could also escape
$event_title= mysql_real_escape_string($_POST['event_title']);
$event_desc= mysql_real_escape_string($_POST['event_desc']);
$event_date_start = mysql_real_escape_string($_POST['event_date_start']);
$event_date_end = mysql_real_escape_string($_POST['event_date_end']);
// Establishing Connection with Server by passing server_name, user_id and password as a parameter
$connection = mysql_connect("localhost", "removed username", "removed password");
// Selecting Database
$db = mysql_select_db("millyaca_events", $connection);
// SQL query to fetch information of registerd users and finds user match.
mysql_query("UPDATE events set event_title='$event_title', event_desc='$event_desc', event_date_start='$event_date_start', event_date_end='$event_date_end' where unique_ID='$ID'", $connection);
mysql_close($connection); // Closing Connection
header("location: https://www.millyacademy.com/admin-zone/events_management/"); // Redirecting To Other Page
}

最好不要将用户数据直接传递给您的查询。

关于PHP/MySQL 仅在变量少于几个字符时更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30989668/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com