我试着从一个表中选择多个值,生成播放列表,创建一个临时表,更新一个字段,然后插入到我的表中
$data_tabella_duplicata = $_POST['data_duplicata'];
$data_iniziale_originale = $_GET['data_iniziale'];
$query_duplica_playlist = "
DROP TABLE IF EXISTS temp_table;
CREATE TEMPORARY TABLE temp_table LIKE playlist_generate;
SELECT data_playlist, giorno_playlist, orario_playlist, nome_evento,nome_programma FROM playlist_generate WHERE data_playlist = '".$data_iniziale_originale."';
UPDATE temp_table SET data_playlist='".$data_tabella_duplicata."';
INSERT INTO playlist_generate SELECT null,data_playlist, giorno_playlist,orario_playlist, nome_evento, nome_programma FROM temp_table;
DROP TABLE temp_table;
";
$esegui_query_duplica_playlist = $connessione->query($query_duplica_playlist);
if ($connessione->error) {
try {
throw new Exception("MySQL error $connessione->error <br> Query:<br> $query_duplica_playlist", $connessione->errno);
} catch (Exception $e) {
echo "Error No: ".$e->getCode()." - ".$e->getMessage()."<br >";
echo nl2br($e->getTraceAsString());
}
}
但我有个错误我不明白
错误号:1064-mysql错误您的sql语法有错误;请查看与您的mysql服务器版本相对应的手册,以获取使用“create temporary table temp\u table like playlist\u generate;选择第2行的“数据播放列表”
我在phpmyadmin中尝试了这个代码,它很有效
如果我用这个
$query_duplica_playlist = "
DROP TABLE IF EXISTS temp_table;
CREATE TEMPORARY TABLE temp_table ENGINE = MEMORY;
SELECT data_playlist, giorno_playlist, orario_playlist, nome_evento,nome_programma FROM playlist_generate WHERE data_playlist = '".$data_iniziale_originale."';
UPDATE temp_table SET data_playlist='".$data_tabella_duplicata."';
INSERT INTO playlist_generate SELECT null,data_playlist, giorno_playlist,orario_playlist, nome_evento, nome_programma FROM temp_table;
DROP TABLE temp_table;
";
$esegui_query_duplica_playlist = $connessione->multi_query($query_duplica_playlist);
我没有结果
2条答案
按热度按时间toe950271#
谢谢大家。所以最好的方法是进行更多的查询。谢谢
vc6uscn92#
从文件上看-
不能使用“创建临时表…”。。。例如,根据mysql表空间、innodb system表空间(innodb\u system)或general表空间中的表定义创建空表。这种表的表空间定义包括一个表空间属性,该属性定义了表所在的表空间,而前面提到的表空间不支持临时表。
此外,您似乎试图同时运行多个查询。如果您使用的是mysqli,那么您将希望使用
multi_query()
. 使用multi_query()
,尤其是在这样的情况下,这是不理想的,所以仔细考虑你的逻辑,如果你发现自己想使用这个功能。