gpt4 book ai didi

php - PDO PHP 中的日期格式

转载 作者:行者123 更新时间:2023-12-03 03:11:28 24 4
gpt4 key购买 nike

我有一个在 Mysql 中运行良好的查询

$日期

$date = date("Y-m-d", mktime(0, 0, 0, date("m"), date("d"), date("Y")));

$date 和 $imdb_id 的 var_dump

string '2013-06-04' (length=10)
string '2244871' (length=7)

准备

SELECT * FROM show_episode, show_episode_airdate, show_network, shows 
WHERE show_episode.imdb_id_show = :imdb_id
AND show_episode.episode_id = show_episode_airdate.episode_id
AND show_network.show_id = shows.id
AND shows.imdb_id = show_episode.imdb_id_show
AND show_episode_airdate.airdate >= :date
ORDER BY show_episode_airdate.airdate ASC LIMIT 3

这是 PHP:

$checkunaired = $conn->prepare('SELECT * FROM show_episode, show_episode_airdate, show_network, shows WHERE show_episode.imdb_id_show = :imdb_id AND show_episode.episode_id = show_episode_airdate.episode_id AND show_network.show_id = shows.id AND shows.imdb_id = show_episode.imdb_id_show AND show_episode_airdate.airdate >= :date ORDER BY show_episode_airdate.airdate ASC LIMIT 3');
$checkunaired->execute(array(':imdb_id' => $imdb_id, ':date' => $date));

:date 是格式为“Y-m-d”的 $date,show_episode_airdate.airdate 是日期格式为“Y-m-d”的列(尽管我不确定 Mysql 知道它们是日期吗?)

当我在 phpmyadmin 中尝试使用“2013-06-04”而不是:date 进行查询时,它返回我想要的内容,但当我在代码中使用它时,它似乎忽略了日期参数?

有人知道为什么吗?

编辑:

  $unairedepisodessql = $conn->prepare('SELECT * FROM show_episode, show_episode_airdate, show_network WHERE show_episode.imdb_id_show = :imdb_id AND show_network.show_id = :show_id AND show_episode.episode_id = show_episode_airdate.episode_id AND show_episode_airdate.airdate >= :date LIMIT 3');
$erro = $unairedepisodessql->errorCode();
var_dump($erro);

返回空

最佳答案

要事第一;您可以使用 MySQL 的 join 语句高效地执行相同的查询:

SELECT se.*, s.*, sea.*, sn.*
FROM show_episode se
INNER JOIN show_episode_airdate sea
ON se.episode_id = sea.episode_id
INNER JOIN show_network sn, shows s ## This part might be a bit wrong....
ON ( s.imdb_id = se.imdb_id_show
AND sn.show_id = s.id )
WHERE se.imdb_id_show = :imdb_id
AND sea.airdate >= :date
ORDER BY sea.airdate ASC
LIMIT 3

现在,讨论手头的问题。

您确定您的列 airdate 具有 MySQL 的 DATE 数据类型吗?您可以使用SHOW CREATE TABLE show_episode_airdate来查找。

PHP 中的 $date 变量是否也有字符串 '2013-06-04'?你如何设置这个值?如果参数是使用 date() 生成的,则您可能使用了错误的参数。

关于php - PDO PHP 中的日期格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16915596/

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