gpt4 book ai didi

php - Mysql 存储函数截断长度为 65535 个字符

转载 作者:行者123 更新时间:2023-11-29 06:06:42 25 4
gpt4 key购买 nike

我是 mysql 中存储函数的新手,发现自己想知道为什么我的结果被截断为 65535 个字符的长度。我觉得它与 concat 功能有关,但无法解决此问题。

我的测试表中有超过 10k 行,但是这个函数只将 1936 行组装到我生成的表中,我知道它被截断了,因为我的结束表标签丢失了...任何见解将不胜感激!

这是我的存储过程:

CREATE DEFINER=`root`@`localhost` FUNCTION `hotdog`() RETURNS text CHARSET utf8
BEGIN
DECLARE str TEXT DEFAULT "<table>";
DECLARE done INT DEFAULT 0;
DECLARE var1 INT;
DECLARE var2 INT;
DECLARE curs CURSOR FOR SELECT * from `test`;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;
OPEN curs;
SET done = 0;
REPEAT
FETCH curs INTO var1, var2;
SET str = concat(str, "<tr><td>");
SET str = concat(str, var1);
SET str = concat(str, "</td><td>");
SET str = concat(str, var2);
SET str = concat(str, "</td></tr>");
UNTIL done END REPEAT;
SET str = concat(str, '</table>');
RETURN str;
END

这是调用它的我的 php...

<?
include 'includes/config.inc.php';
$q = $db->prepare("select hotdog() as hotdog1");
$q->execute();
$row = $q->fetch(PDO::FETCH_ASSOC);
echo $row['hotdog1'];
// for($i=1; $i<500000; $i++)
// {
// $qs = "INSERT INTO `test`(`id`, `test`) VALUES (Null,$i)";
// $q = $db->prepare($qs);
// $q->execute();
// }
?>

最佳答案

这是 TEXT 列的大小。

http://dev.mysql.com/doc/refman/5.7/en/storage-requirements.html

您将 str 声明为文本。如果您想存储更多内容,则需要 MEDIUMTEXT 或 LONGTEXT。

关于php - Mysql 存储函数截断长度为 65535 个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41053254/

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