需求链接连个两个字段 用逗号链接 字段值可能为null 在命令行可以正常运行 得到期望的结果 但是放进项目中就报错
在命令行可以正常运行 得到期望的结果 但是放进项目中就报错 报错如下
Error SQL: SELECT
m. NAME MaterialName,
m.Model MaterialModel,
mc.`Name` categoryName,
CONCAT(m.Standard,if(((m.Standard!=NULL ||m.Standard!='' ) and (m.Color!=NULL ||m.Color!='' ) ),',' ,''),m.Color)
AS MaterialOther,
m.unit MaterialUnit,
ifnull(m.safetystock,0) safetystock,
IFNULL(intype.BasicInNumber ,0) BasicInNumber,
IFNULL(outtype.BasicOutNumber ,0) BasicOutNumber,
(
IFNULL(intype.BasicInNumber ,0) - IFNULL(outtype.BasicOutNumber ,0)
) BasicNumber,
(IFNULL(intype.BasicInNumber ,0) - IFNULL(outtype.BasicOutNumber ,0) - ifnull(m.safetystock,0)) BasicLinjieNumbe
FROM
jsh_material m
LEFT JOIN jsh_materialcategory mc ON mc.Id = m.CategoryId
LEFT JOIN (
SELECT
di.MaterialId,
ifnull(sum(BasicNumber), 0) AS BasicInNumbe
FROM
jsh_depothead dh
INNER JOIN jsh_depotitem di ON dh.id = di.HeaderId
AND ifnull(di.delete_Flag, '0') != '1'
WHERE
dh.type = '入库'
and di.DepotId= 7
AND ifnull(dh.delete_Flag, '0') != '1' group by di.MaterialId
) intype ON intype.MaterialId = m.id
LEFT JOIN (
SELECT
di.MaterialId,
ifnull(sum(BasicNumber), 0) AS BasicOutNumbe
FROM
jsh_depothead dh
INNER JOIN jsh_depotitem di ON dh.id = di.HeaderId
AND ifnull(di.delete_Flag, '0') != '1'
WHERE
dh.type = '出库'
AND dh.SubType != '调拨'
and di.DepotId= 7
AND ifnull(dh.delete_Flag, '0') != '1' group by di.MaterialId
) outtype ON outtype.MaterialId = m.id
WHERE
1 = 1
AND ifnull(m.delete_Flag, '0') != '1'
AND intype.BasicInNumber > 0
ORDER BY
(IFNULL(intype.BasicInNumber ,0) - IFNULL(outtype.BasicOutNumber ,0) - ifnull(m.safetystock,0))
limit ?,?
at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30)
at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:150)
at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:141)
at sun.reflect.GeneratedMethodAccessor130.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:433)
... 74 common frames omitted
Caused by: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Failed to process, please exclude the tableName or statementId.
答案:要通过PHP在FTP服务器上搜索和下载文件,您需要遵循以下步骤:
ftp_connect()
函数连接到FTP服务器。您需要提供服务器的地址和端口(通常为21)。$ftp_server = "ftp.example.com";
$ftp_username = "your_username";
$ftp_password = "your_password";
$conn_id = ftp_connect($ftp_server) or die("Could not connect to $ftp_server");
ftp_login()
函数登录到FTP服务器。您需要提供用户名和密码。$login_result = ftp_login($conn_id, $ftp_username, $ftp_password);
ftp_pasv()
函数切换到被动模式。这是一个可选步骤,但有助于避免某些连接问题。ftp_pasv($conn_id, true);
ftp_nlist()
或ftp_rawlist()
函数搜索文件。ftp_nlist()
返回一个简单的文件列表,而ftp_rawlist()
返回一个包含文件详细信息的列表。$file_list = ftp_nlist($conn_id, "/path/to/search");
ftp_get()
函数下载文件。您需要提供一个本地文件路径来保存下载的文件。foreach ($file_list as $file) {
$local_file = "local_directory/" . basename($file);
$download_result = ftp_get($conn_id, $local_file, $file, FTP_BINARY);
}
ftp_close()
函数关闭FTP连接。ftp_close($conn_id);
推荐腾讯云产品:腾讯云对象存储(COS)提供了丰富的API和SDK,可以方便地实现文件的搜索和下载。您可以访问腾讯云对象存储官网了解更多信息。
示例代码:
<?php
$ftp_server = "ftp.example.com";
$ftp_username = "your_username";
$ftp_password = "your_password";
$conn_id = ftp_connect($ftp_server) or die("Could not connect to $ftp_server");
$login_result = ftp_login($conn_id, $ftp_username, $ftp_password);
ftp_pasv($conn_id, true);
$file_list = ftp_nlist($conn_id, "/path/to/search");
foreach ($file_list as $file) {
$local_file = "local_directory/" . basename($file);
$download_result = ftp_get($conn_id, $local_file, $file, FTP_BINARY);
}
ftp_close($conn_id);
?>