我在PL/Proxy中设置了一个存储过程来进行查询,然后收回一些RECORD.
在PL /代理中:
CREATE OR REPLACE FUNCTION query_autocomplete(q text, i_id bigint)
RETURNS SETOF RECORD AS $$
CLUSTER 'autocompletecluster';
RUN ON i_id;
$$ LANGUAGE plproxy;
Run Code Online (Sandbox Code Playgroud)
在每个分区中:
CREATE OR REPLACE FUNCTION query_autocomplete(q text, i_id bigint)
RETURNS SETOF RECORD AS $$
DECLARE
rec RECORD;
BEGIN
FOR rec IN EXECUTE q
LOOP
RETURN NEXT rec;
END LOOP;
RETURN;
END;
$$ LANGUAGE plpgsql;
Run Code Online (Sandbox Code Playgroud)
正如您可能猜到的那样,这是在PGSQL中命名为'autocompletecluster'的定义的SERVER.我发送的查询字符串如下:
$sql = "SELECT * FROM autocomplete WHERE member_id = :memberId";
$query = $this->db->prepare("SELECT query_autocomplete('{$sql}',1234");
Run Code Online (Sandbox Code Playgroud)
它返回以下内容:
SQLSTATE[XX000]: Internal error: 7 ERROR: PL/Proxy …Run Code Online (Sandbox Code Playgroud) 我试图在从 $.ajax 调用中检索评论后设置一个值。当我提醒 commentOutput 和 commentSpan 的值时,它们显示了正确的数据。但是,当我尝试在跨度中设置这些评论的值时,它们不会显示,也不会出现在生成的源中。
这是javascript。您可以在控制台中看到 POST 的返回。您还可以看到它为跨度抓取的值,因为我已在单击时提醒它。
要调用它,只需单击猫的第一张图片,此时其他人都没有评论。
var ajaxOptions = {
type: 'POST',
dataType: 'json',
url: 'ajax/comments.php',
data: { id: photoID, action: 'GetComments' },
success: function(data) {
for(i=0; i<data.length; i++) {
var commentOutput = '<div><h4>'+data[i].comment_user+' says:</h4>';
commentOutput += '<span>'+data[i].comment_msg+'</span>';
commentOutput += '</div>';
var commentSpan = '#photo' + data[i].photo_id + ' .comments';
$(commentSpan).val(commentOutput);
$(commentSpan).delay('200').css('display','block');
}
}
};
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激,
干杯,
科迪