PDO PHP中的日期格式 - php

This question is unlikely to help any future visitors; it is only relevant to a small geographic area, a specific moment in time, or an extraordinarily narrow situation that is not generally applicable to the worldwide audience of the internet. For help making this question more broadly applicable, visit the help center。

7年前关闭。

我有一个在MySQL中正常工作的查询

$ date

$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是$ date,格式为'Y-m-d',show_episode_airdate.airdate是一列日期格式为'Y-m-d'的列(尽管我不确定Mysql是否知道它们是日期?)

当我用'2013-06-04'而不是:date在phpmyadmin中尝试查询时,它返回我想要的内容,但是当我在代码中使用date参数时,它似乎忽略了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);

返回null

参考方案

首先是第一件事;您可以使用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()生成参数,则可能会使用错误的参数。

PDO PHP SQLite3数据库连接常规错误14 - php

我有2个sqlite3.x数据库(来自iPhone),一个来自游戏应用程序,另一个是通讯录。我在php conf中记录日志并显示错误“ on”。使用PHP / PDO,我可以显示游戏数据库中的字段和值,包括我在结果页中捕获的图像斑点,并使用“ img src ='data:...”进行渲染。我在其他字段上使用htmlentities捕获plist二进制blo…

PHP启动:无法加载动态库PGSQL - php

我正在尝试使用运行Symfony 3.x:Ubuntu 16.04PHP 7.0NGinx我想与我创建的PGSQL数据库进行交互,但出现此错误: PHP警告:PHP启动:无法加载动态库 '/usr/lib/php/20151012/php_pdo_pgsql.dll'- /usr/lib/php/20151012/php_pdo_pgsql.dll:无法打开…

PHP在全局名称空间中使用类 - php

我有一个使用PDO的数据库包装器类,并在构造函数中创建了一个PDO对象。 wrapper类位于我们的名称空间中,并且正在使用自动加载器。问题是在我们的名称空间中找不到PDO类,因此我尝试使用here中所述的全局名称空间。//Class file namespace Company\Common; class DB { private function __c…

PHP:将数据从二维数组复制到一维数组的最快方法 - php

我有一个巨大的二维PHP数组,带有500万行。$t = [ [ "id" => 1, "name" => "foo" ], [ "id" => 2, "name" => "bar" ] ]; 现在,我必须将此数组的I…

PDO 3,多次运行:错误:17数据库架构已更改 - php

我有这个测试代码:session_start(); session_write_close(); set_time_limit(0); for ($i = 1; $i < 1000; $i++) { if (rand(1,5) == 1) { $file_db = new PDO('sqlite:x.db'); $file_db-&…