Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php mysql函数create语句抛出错误 INPolygon(pnt varchar(50),poly varchar(500))中的创建函数返回int(1) 确定性 开始 声明x,y,p1x,p1y,p2x,p2y浮动(20,16)默认为0; 声明计数器,i INT默认值为1; (20,16); 声明intersect int默认值为0; 设置计数器=子计数器(多边形“#”)+1; 设置x=修剪(strSplit(pnt’,’,1)); 设置y=修剪(strSplit(pnt’,’,2)); 而i MIN(p1x,p2x)和xMIN(p1y,p2y)和y_Php_Mysql_Stored Procedures - Fatal编程技术网

Php mysql函数create语句抛出错误 INPolygon(pnt varchar(50),poly varchar(500))中的创建函数返回int(1) 确定性 开始 声明x,y,p1x,p1y,p2x,p2y浮动(20,16)默认为0; 声明计数器,i INT默认值为1; (20,16); 声明intersect int默认值为0; 设置计数器=子计数器(多边形“#”)+1; 设置x=修剪(strSplit(pnt’,’,1)); 设置y=修剪(strSplit(pnt’,’,2)); 而i MIN(p1x,p2x)和xMIN(p1y,p2y)和y

Php mysql函数create语句抛出错误 INPolygon(pnt varchar(50),poly varchar(500))中的创建函数返回int(1) 确定性 开始 声明x,y,p1x,p1y,p2x,p2y浮动(20,16)默认为0; 声明计数器,i INT默认值为1; (20,16); 声明intersect int默认值为0; 设置计数器=子计数器(多边形“#”)+1; 设置x=修剪(strSplit(pnt’,’,1)); 设置y=修剪(strSplit(pnt’,’,2)); 而i MIN(p1x,p2x)和xMIN(p1y,p2y)和y,php,mysql,stored-procedures,Php,Mysql,Stored Procedures,您不能像那样使用MIN()和max()。使用和可获得两列中的最低和最高值。更改使用MIN()的段 CREATE FUNCTION INPolygon(pnt varchar(50),poly varchar(500)) RETURNS int(1) DETERMINISTIC BEGIN DECLARE x, y, p1x, p1y, p2x, p2y float(20, 16) DEFAULT 0; DECLARE counter,i INT DEFAULT 1; DECLARE to

您不能像那样使用
MIN()
max()
。使用和可获得两列中的最低和最高值。更改使用
MIN()
的段

CREATE FUNCTION INPolygon(pnt varchar(50),poly varchar(500)) RETURNS int(1)
    DETERMINISTIC
BEGIN
DECLARE x, y, p1x, p1y, p2x, p2y float(20, 16) DEFAULT 0;
DECLARE counter,i INT DEFAULT 1;
DECLARE touches float(20,16);
DECLARE intersect int DEFAULT 0;
set counter = substrCount(poly,"#") + 1;
set x = trim(strSplit(pnt,',',1));
set y = trim(strSplit(pnt,',',2));
while i <= counter DO
set p1x = strSplit(strSplit(poly,'#',i), ',', 1);
set p1y = strSplit(strSplit(poly,'#',i), ',', 2);
set p2x = strSplit(strSplit(poly, '#', i+1), ',', 1);
set p2y = strSplit(strSplit(poly, '#', i+1), ',', 2);
IF ((x = p1x AND y = p1y) OR (x = p2x AND y = p2y)) THEN
RETURN 1;
END IF;
IF (p1y = p2y and p1y = y and x > MIN(p1x, p2x) and x < MAX(p1x, p2x))  THEN
return 1;
END IF;
IF (y > MIN(p1y, p2y) AND y <= MAX(p1y,p2y) AND x <= MAX(p1x, p2x) AND p1y != p2y) THEN
set touches = (y - p1y) * (x - p1x) / (p2y - p1y) + x;
IF touches = x THEN
return 1;
END IF;
IF p1x = p2x OR x <= touches THEN
set intersect = intersect+1;
END IF;
END IF;
END WHILE;
RETURN intersect % 2;
END


错误消息如何继续?缺少感兴趣的部分。若要使用near'p2x)和xMIN(p1y,p2y)和y'在第19行,可能是因为你试图在集合x中抛出一个字符串使其浮动…+1,并接受你的回答,我从早上就开始与它斗争谢谢
MIN(p1y, p2y)
LEAST(p1y, p2x)
MAX(p1y, p2y)
GREATEST(p1y, p2y)