【问题标题】:Unable to insert time type data into mysql in PHP无法在 PHP 中将时间类型数据插入 mysql
【发布时间】:2015-11-25 01:09:59
【问题描述】:

我有一个输入字段,它以时间格式'H:i A' 输入,应该存储在time 类型数据的mysql 数据库中。

我已经通过dateTime 函数转换了输入,看起来像-

$sat_opened = DateTime::createFromFormat( 'H:i A',$_POST['sat_opened']);
$sat_opened_new = $sat_opened->format('H:i:s'); 

用于插入的查询是 -

mysqli_query($connect, "INSERT INTO biz_hours VALUES(DEFAULT, '$bid', 'Sat', '$sat_status', '$sat_opened_new', '$sat_closed','')")

Others 正在插入数据,但对于 opened 列,它始终插入 12:00:00 。如果我打印转换后的时间(echo $sat_opened_new),那么它打印的时间应该是 MySQL 时间格式,例如 - 08:50:0017:30:00

实际上存在什么问题?请帮我找出来。谢谢

【问题讨论】:

  • 您正在尝试插入 DateTime 对象而不是格式化时间。
  • 抱歉,输入错误。在问题中更新。
  • 您是否尝试过只是回显它而不是运行查询? echo "INSERT INTO biz_hours VALUES(DEFAULT, '$bid', 'Sat', '$sat_status', '$sat_opened_new', '$sat_closed','')"; 这至少可以让你看到正在执行的内容。
  • 还有一个想法,出于兼容性目的,您应该始终声明这些字段。如果表结构发生变化,或者值与表结构不匹配,则不会将值插入到正确的位置。应该是INSERT INTO table (field) VALUES ('$value')
  • 它打印 INSERT INTO biz_hours VALUES(DEFAULT, '3', 'Sat', '2', '14:00:00', '10:00 AM','') 看起来不错,但在数据库中它插入 12:00:00 而不是 14:00:00

标签: php mysql


【解决方案1】:

看来您可以直接通过 phpMyAdmin: INSERT INTO biz_hours (opened) VALUES ('12:34:56') 成功插入日期。因此,您需要重新处理您的 PHP 查询并对其进行调试。从最小的工作 mysqli_query 开始并开始添加其他字段(biz_iddaystatus 等),直到您再次遇到问题。可能您的某个变量设置不正确。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-04
    • 1970-01-01
    相关资源
    最近更新 更多