我正在使用通知模块在添加评论时通知用户。但是,我已经对它进行了测试,并且没有发送电子邮件。当我尝试处理通知队列时,我收到以下错误:
用户警告:您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以便在第1行查询时使用“db_type_placeholder的类型和db_type_pl的不支持类型”附近使用正确的语法:SELECT * FROM notifications_queue WHERE cron = db_type_placeholder的不支持类型AND send_interval =第210行的/home/openupor/public_html/sites/default/modules/notifications/notifications.cron.inc中db_type_placeholder ORDER BY模块,uid,destination,send_method,send_interval的不支持类型。
有谁能告诉我如何解决此问题?我看过第210行,但这对我没有帮助。我不知道从哪里开始。
答案 0 :(得分:1)
Drupal使用占位符系统将变量安全地插入SQL,而不存在SQL注入的风险。
示例:
$nid = 100;
db_query("SELECT title FROM {node} WHERE nid = %d;", $nid);
将生成查询:
SELECT title FROM {node} WHERE nid = 100;
现在,从错误消息中可以看出,尝试插入查询的变量是不受支持的类型,如fx stdClass
。因此,最好的起点是看看产生这些变量的原因。
您应该搜索模块的问题日志以查看是否有其他问题,如果没有,请发布错误报告。它可能不是注释中的错误,但模块维护者可能会给你一些关于如何继续的快速答案或建议,并且它可以在相同的情况下帮助其他人。