我使用 PHPMyAdmin 创建了一个新表,但我在使用 PHP 插入 DATE
时遇到了问题。用于故障排除的非常简单的代码和表格。
<?php
session_start();
if (isset ($_SESSION['valid_user']))
{
require ("PHP/header.php");
require ("PHP/leftmenub.php");
require ("PHP/bodya.php");
//create variables from hidden POST DATA
$customerid = $_POST['customerid'];
$requestdate = date('Y-m-d');
@ $db = mysql_connect('localhost', '', '');
if (!$db)
{
echo '<br><br><br><br>';
echo 'Error: Could not connect to database. Please try again later.';
}
mysql_select_db('kitorders');
$query = "INSERT INTO ECLIPSE "."(requestdate,customerid)"." VALUES "." ('$requestdate','$customerid')";
if (!$query)
{
echo '<br>';
echo 'Error: Could not insert to database. Please try again.';
require ("PHP/bodyb.php");
require ("PHP/footer.php");
exit;
}
require ("PHP/bodyb.php");
require ("PHP/footer.php");
}
else
{
echo "Thank you $FirstName, unfortunately there was a problem submitting the form.";
require ("PHP/bodyb.php");
require ("PHP/footer.php");
}
?>
我基本上想在插入其余数据时插入日期。为了故障排除,我已从表和 INSERT 中删除了其他项目。我没有收到错误,它的作用是接受了查询,但没有插入数据。如果我删除 DATE
,则会插入其他数据。我尝试使用 DATE(Y-m-d)
和 (Y,m,d)
来定义 $requestdate
,但没有任何效果。我正在使用 PHPMyAdmin 创建 MySQL。我尝试了 3 个不同的表,创建 DATE
无济于事。我将尝试附上 PHPMyAdmin 的快照。
最佳答案
日期应该不是问题。由于您想插入当前日期这一事实,我建议使用 UTC_TIMESTAMP()
这对于收集中性时区数据很有用,比如说如果您的用户位于世界各地,则您不需要不会搞乱本地服务器时间问题。
其次,避免使用这种陈旧的、已弃用的和不安全的语句,使用 PDO
,它可以保护您免受 SQL INJECTION
的影响,这是一个严重的线程。
$insert=$db->prepare("insert into yourtable values (?, ?);");
$insert->execute(array($customerid, $date));
不知道您的表设计或架构
,但我建议在插入所有数据后在末尾插入一个时间戳作为验证、安全元素。
关于php - INSERT mySQL DATE 无法使用 PHP 运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21175348/