未使用 PHP 保存在 MYSQL 中的值 [重复]
Posted
技术标签:
【中文标题】未使用 PHP 保存在 MYSQL 中的值 [重复]【英文标题】:Values not saving in the MYSQL using PHP [duplicate] 【发布时间】:2017-02-20 18:24:05 【问题描述】:我正在尝试使用 php 将 utm 参数和其他值保存在 mysql 中,但是这些值没有保存在数据库中。
我已经回显了每个变量并且值都存在。查询有什么问题?为什么值没有保存在数据库中?
以及如何插入日期?我的意思是,我想在插入值时插入/保存日期。
if(isset($_SERVER['HTTP_REFERER']) && $_SERVER['HTTP_REFERER'] != "")
$customer_fname = isset($_POST['customer_fname']) ? $_POST['customer_fname'] : '';
$customer_sname = isset($_POST['customer_sname']) ? $_POST['customer_sname'] : '';
$customer_email = isset($_POST['customer_email']) ? $_POST['customer_email'] : '';
$customer_mobile = isset($_POST['customer_mobile']) ? $_POST['customer_mobile'] : '';
$utm_source = isset($_GET['utm_source']) ? $_GET['utm_source'] : '';
$utm_medium = isset($_GET['utm_medium']) ? $_GET['utm_medium'] : '';
$utm_campaign = isset($_GET['utm_campaign']) ? $_GET['utm_campaign'] : '';
$utm_content = isset($_GET['utm_content']) ? $_GET['utm_content'] : '';
$referer_url = $_SERVER['HTTP_REFERER'];
$base_url = preg_replace('/\?.*/', '', $_SERVER['HTTP_REFERER']);
$sql = "INSERT INTO utm_param(customer_fname,customer_sname,
customer_email,customer_mobile,
utm_source,utm_medium,
utm_campaign,utm_content,
referer_url,base_url,date_inserted)
VALUES('".$conn->real_escape_string($customer_fname)."',
'".$conn->real_escape_string($customer_sname)."',
'".$conn->real_escape_string($customer_email)."',
'".$conn->real_escape_string($customer_mobile)."',
'".$conn->real_escape_string($utm_source)."',
'".$conn->real_escape_string($utm_medium)."',
'".$conn->real_escape_string($utm_campaign)."',
'".$conn->real_escape_string($utm_content)."',
'".$conn->real_escape_string($referer_url)."',
'".$conn->real_escape_string($base_url)."')";
$result = $conn->query($sql);
if($result)
echo "row inserted\n";
else
echo '<br/>aaa';
【问题讨论】:
在数据库编辑器上运行查询并检查错误或警告(如果有) $conn 来自哪里?您可以调高调试级别以查看在 ELSE 上发生的错误。例如$conn->getError();或类似的。您可能还想使用 ini_set('display_errors', 1); error_reporting(E_ALL) 用于开发... 上面代码中的日期字段是哪一个... @VeshrajJoshi,我还没有输入日期字段,因为我不知道在插入其他值时如何插入 您可以添加字段名称和值,否则将默认值设置为数据库中的列 【参考方案1】:在查询中,您错过了 date_inserted
值。如果它必须是“NOT NULL”,则查询将失败。
要在数据库中插入日期,建议您查看此链接:PHP date() format when inserting into datetime in MySQL。
因此,按照上面的链接,要保存插入值的日期,您必须执行以下操作:
// set the value
$date_inserted = date("Y-m-d H:i:s");
//insert the values
$sql = "INSERT INTO utm_param(
customer_fname,
customer_sname,
customer_email,
customer_mobile,
utm_source,
utm_medium,
utm_campaign,
utm_content,
referer_url,
base_url,
date_inserted
) VALUES(
'".$conn->real_escape_string($customer_fname)."',
'".$conn->real_escape_string($customer_sname)."',
'".$conn->real_escape_string($customer_email)."',
'".$conn->real_escape_string($customer_mobile)."',
'".$conn->real_escape_string($utm_source)."',
'".$conn->real_escape_string($utm_medium)."',
'".$conn->real_escape_string($utm_campaign)."',
'".$conn->real_escape_string($utm_content)."',
'".$conn->real_escape_string($referer_url)."',
'".$conn->real_escape_string($base_url)."',
'".$date_inserted."'
);";
希望对你有帮助。
【讨论】:
但是如何保存自动插入的日期?我的意思是,我想保存插入值时插入的日期 @User014019 我编辑了答案以插入当前日期时间(实际上是插入值时的日期时间)。此外,您的date_inserted
MySQL 字段必须是“DATETIME”类型。
它正在工作。谢谢!以上是关于未使用 PHP 保存在 MYSQL 中的值 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
将html表单中的数据插入sql数据库(html,php,sql)时未保存输入的值
Mysql - 数据库连接 - xampp - 使用 PHP [重复]