PHP mysql 查询临时表不起作用

标签 php mysql mysqli libmysql

我正在通过 php、javascript 制作一个小型电子邮件应用程序,并使其大部分工作正常。当我尝试设置查询以获取已删除并发送到垃圾箱的电子邮件时,我迷失了方向。当我直接查询数据库时,我编写的查询似乎工作正常,但从 PHP 运行时失败。请帮助我解决这个令人沮丧的问题,任何帮助将不胜感激。

我的电子邮件表结构如下。

TABLE messages (
    'mid' int,
    'folderfrom' int, //where message is stored for the user who sent it
    'msgfrom' text,  //user sending message
    'msgto' text, //user getting message
    'subject' text,
    'msgdate' timestamp,
    'msg' text,
    'folderto' int, //where message is stored for recieving user.
)

下面是我用于构建和执行查询的代码。我尝试在一行中运行最后一个 else 条件,但它不起作用。

if ($foldernum == 1)  {
    $querytorun = "SELECT ms.mid as 'id', ms.folderto as 'folder', ms.msgfrom as 'name', ms.msgto as 'email', ms.subject as 'subject', ms.msgdate as 'date', ms.msg as 'msg' FROM messages as ms WHERE ms.msgto LIKE '{$usercode}' AND ms.folderto = {$foldernum}";
} elseif ($foldernum == 2) {
    $querytorun = "SELECT ms.mid as 'id', ms.folderfrom as 'folder', ms.msgfrom as 'name', ms.msgfrom as 'email', ms.subject as 'subject', ms.msgdate as 'date', ms.msg as 'msg' FROM messages as ms WHERE ms.msgfrom LIKE '{$usercode}' AND ms.folderfrom = {$foldernum}";
} else {
    $querytorun = "CREATE TEMPORARY TABLE tempfolder('id' int,'folder' int, 'name' text,'email' text,'subject' text,'date' datetime,'msg' text)";
    $res = mysql_query($querytorun);
    $querytorun = "INSERT INTO tempfolder SELECT mst.mid as 'id', mst.folderto as 'folder', mst.msgfrom as 'name', mst.msgto as 'email', mst.subject as 'subject', mst.msgdate as 'date', mst.msg as 'msg' FROM messages as mst WHERE mst.msgto LIKE '{$usercode}' AND mst.folderto = {$foldernum}";
    $res = mysql_query($querytorun);
    $querytorun = "INSERT INTO tempfolder SELECT mst.mid as 'id', mst.folderfrom as 'folder', mst.msgto as 'name', mst.msgfrom as 'email', mst.subject as 'subject', mst.msgdate as 'date', mst.msg as 'msg' FROM messages as mst WHERE mst.msgfrom LIKE '{$usercode}' AND mst.folderfrom = {$foldernum}";
    $res = mysql_query($querytorun);
    $querytorun = "SELECT * FROM tempfolder";   
}

$res = mysql_query($querytorun);

while($rs = mysql_fetch_object($res)) {
    $arr[] = $rs;
}

echo json_encode($arr);

最佳答案

尝试使用反引号而不是单引号。

CREATE TEMPORARY TABLE tempfolder(`id` int,`folder` int, `name` text,`email` text,`subject` text,`date` datetime,`msg` text)

关于PHP mysql 查询临时表不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26498685/

相关文章:

php - MySQL 中较慢的 UPDATE 语句

php - 如何从多个表中获取结果

php - 如何使用 XMLHttpRequest 通过复制粘贴 javascript 接收 php 图像数据

php - php中有指针吗?

使用LEFT JOIN时Mysql查询长时间停留在 'SENDING DATA'状态

php - 数据完整性和限制

mysql - 如何组合这些查询

php - Linux 服务器上无法访问端口 8080

php - 在 PHP 和 MySQL 中设置时区

php - 从输入获取日期时间本地值并将其插入数据库的正确方法是什么?