在 Davical 中添加组会导致错误
P粉460377540
P粉460377540 2023-09-04 22:16:39
[PHP讨论组]
<p>嗨,我正在尝试使用 Postgres、nginx 和 php8.1 在 Nextcloud 旁边安装 Davical,它已经部分工作(添加用户或资源工作正常),但是当我想创建组时,我收到以下错误消息: </p> <p>我可以在管理面板中创建群组,但是当我调用群组页面时 (<code>https://calendar.example.de/admin.php?action=edit&t=principal&id=1019</code>) 我在“组成员资格”下收到此错误消息:</p> <pre class="brush:php;toolbar:false;">Exception [42601] SQLSTATE[42601]: Syntax error: 7 FEHLER: Müll folgt auf numerische Konstante bei »1019O« ZEILE 1: ...member WHERE group_id = 1019) AND principal_id != 1019ORDER ... ^ At line 95 of /usr/share/awl/inc/AwlDatabase.php ================= Stack Trace =================== /usr/share/davical/htdocs/admin.php[50] Browser-&gt;Render() /usr/share/awl/inc/classBrowser.php[852] edit_group_row() /usr/share/davical/inc/ui/principal-edit.php[591] Editor-&gt;Render() /usr/share/awl/inc/classEditor.php[669] preg_replace_callback() [0] Editor-&gt;ReplaceEditorPart() /usr/share/awl/inc/classEditor.php[597] EntryField::BuildOptionList() /usr/share/awl/inc/DataEntry.php[306] AwlQuery-&gt;Exec() /usr/share/awl/inc/AwlQuery.php[585] AwlQuery-&gt;Execute() /usr/share/awl/inc/AwlQuery.php[396] AwlDatabase-&gt;query() /usr/share/awl/inc/AwlDatabase.php[95] PDO-&gt;query()</pre> <p>并且我无法将用户添加到组中。</p> <p>Davical错误日志中还存在以下错误消息</p> <pre class="brush:php;toolbar:false;">2023/04/26 11:38:59 [error] 330989#330989: *17 FastCGI sent in stderr: &quot;PHP message: PHP Early Exception: [42601] SQLSTATE[42601]: Syntax error: 7 FEHLER: Müll folgt auf numerische Konstante bei »1019O« ZEILE 1: ...member WHERE group_id = 1019) AND principal_id != 1019ORDER ... ^ at /usr/share/awl/inc/AwlDatabase.php:95&quot; while reading upstream, client: 192.168.100.2, server: calendar.example.de, request: &quot;GET /admin.php?action=edit&amp;t=principal&amp;id=1019 HTTP/2.0&quot;, upstream: &quot;fastcgi://unix:/run/php/php8.1-fpm.sock:&quot;, host: &quot;calendar.example.de&quot;</pre> <p>postgresql 错误日志显示:</p> <pre class="brush:php;toolbar:false;">2023-04-26 11:59:29.228 CEST [333501] davical_app@davical ANWEISUNG: SELECT principal_id, coalesce(displayname,fullname,username) FROM dav_principal WHERE principal_id NOT IN (SELECT member_id FROM group_member WHERE group_id = 1019) AND principal_id != 1019ORDER BY 2</pre> <p>使用 ubuntu 22.04、php8.1、postgresql 15、Davical 1.1.11-1、libawl-php 0.63-1 全部</p> <p>我检查了 php8.1-fpm.sock,在 www.conf 和相应的 nginx 配置中,到套接字的链接都是正确的。 php8.1.-fpm.sock 可用,用户权限和所有者似乎设置正确。 也许我错过了什么,或者postgresql数据库有错误? 有人可以进一步帮助我吗?</p> <p>谢谢!</p>
P粉460377540
P粉460377540

全部回复(1)
P粉098417223

这段代码是错误的:

$sql = 'SELECT principal_id, coalesce(displayname,fullname,username) FROM dav_principal ';
  $sql .= 'WHERE principal_id NOT IN (SELECT member_id FROM group_member WHERE group_id = '.$id.') ';
  $sql .= 'AND principal_id != '.$id;
  $sql .= 'ORDER BY 2';

ORDER BY 在 $id 之后卡住,导致您看到错误消息。

修复:ORDER BY 之前有多余空格:

$sql .= ' ORDER BY 2';

可以找到该文件这里,principal-edit.php

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号