gpt4 book ai didi

mysql - SQL语法错误导致数据库错误

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

这是我遇到的错误:

[You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1]

我没有得到错误。我找不到它。

这是我的代码:

function my_bp_adminbar_notifications_menu() {
global $bp;

if ( !is_user_logged_in() )
return false;

echo '<li id="top-notification">';
_e( 'Alerts', 'buddypress' );

if ( $notifications = bp_notifications_get_notifications_for_user( $bp->loggedin_user->id ) ) { ?>
<span><?php echo count( $notifications ) ?></span>
<?php
}

if ( $notifications ) {
$counter = 0;
for ( $i = 0; $i < count($notifications); $i++ ) {
$alt = ( 0 == $counter % 2 ) ? ' class="alt"' : ''; ?>

<li<?php echo $alt ?>><?php echo $notifications[$i] ?></li>

<?php $counter++;
}
} else { ?>

这是怎么回事?我没有看到可能有问题的单引号。

最佳答案

可能是您正在调用一些函数,这些函数又运行 SQL 查询。我看到您正在调用两个函数:is_user_logged_in(),它是 WordPress 代码中的标准函数,以及 bp_notifications_get_notifications_for_user(),它是 BuddyPress(一个 WordPress 插件)的一部分。

我猜 BuddyPress 代码有一个代码错误。我搜索了一下,发现他们有很多关于 SQL 语法错误的错误报告,所以我猜他们没有足够地测试他们的代码。

首先,您应该升级到最新的 BuddyPress 版本,看看错误是否已经修复。如果问题仍然存在,请联系他们的支持:https://buddypress.org/support/

解释你得到的错误:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

MySQL 中的语法错误报告查询部分跟在语法分析器被混淆的地方。例如,如果您在选择列表中放置一个额外的逗号:

SELECT a, b, c, FROM ...

语法错误会在“FROM”附近报告问题,因为该关键字在逗号后是意外的。

如果您在 '' 附近收到语法错误报告,则意味着解析器在到达 SQL 查询末尾时感到困惑,因为它没有找到预期的内容。这是由许多类型的错误引起的,例如,因为 SQL 未能关闭括号或引号,或者使用了没有必需参数的子句关键字。

以下是查询结束时可能出现的语法错误的一些示例:

SELECT * FROM mytable WHERE
SELECT * FROM mytable WHERE col =
SELECT * FROM mytable WHERE col = 'string
SELECT * FROM mytable WHERE (x OR y

基本上,任何类型的“未完成”语法都会在最后导致此错误。

关于mysql - SQL语法错误导致数据库错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40982700/

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