mysql PHP PDO在一个POST请求上执行2个查询
我使用了一个标准的mysql PHP PDO在一个POST请求上执行2个查询,php,mysql,pdo,Php,Mysql,Pdo,我使用了一个标准的apache2-LAMP配置,配置为mysql和php5,唯一的改变是我的字符编码改为UTF8 我在单击一个锚(文章标题)时调用了AJAX,并希望运行2个查询。一个获取文章,另一个获取与文章相关的评论 我在浏览时发现了,但到目前为止还不能实现他所说的。我收到以下消息:致命错误:在第45行的/home/shooste/Dropbox/PTC_php/db_querys/articles.php中对非对象调用成员函数nextRowset()。我真的不知道这样做是否正确 问题是第一个
apache2-LAMP
配置,配置为mysql
和php5
,唯一的改变是我的字符编码改为UTF8
我在单击一个锚(文章标题)时调用了AJAX
,并希望运行2个查询。一个获取文章,另一个获取与文章相关的评论
我在浏览时发现了,但到目前为止还不能实现他所说的。我收到以下消息:致命错误:在第45行的/home/shooste/Dropbox/PTC_php/db_querys/articles.php中对非对象调用成员函数nextRowset()。我真的不知道这样做是否正确
问题是第一个SELECT语句返回一行(一篇文章),而第二个SELECT语句返回多行(该文章的所有注释),因此我无法将它们真正合并到一个语句中
无论如何,这是我的代码(我注释掉了不相关的部分):
现在存在两个问题:对包含数据的数组调用nextRowset()
,而不是从第二行集合中获取数据
你需要像这样的东西:
$result = $query->fetchAll();
// now $result contains your row with data
// get the next row set from the query
$query->nextRowset();
^^^^^^
// get the results of the second row set
$result2 = $query->fetchAll();
// You would have to see how you want to send both result sets...
echo json_encode( array('article' => $result, 'comments' => $result2) );
die();
请注意,您必须调整javascript以适应数据结构。现在存在两个问题:在包含数据的数组上调用nextRowset()
,而不是从第二行集获取数据
你需要像这样的东西:
$result = $query->fetchAll();
// now $result contains your row with data
// get the next row set from the query
$query->nextRowset();
^^^^^^
// get the results of the second row set
$result2 = $query->fetchAll();
// You would have to see how you want to send both result sets...
echo json_encode( array('article' => $result, 'comments' => $result2) );
die();
请注意,您必须调整javascript以适应数据结构。您正在对数组调用nextrowset()
,因此会出现错误。sry,我编辑了主要帖子,因此它现在包含两个select语句。问题是如果我不调用nextrowset()
我只从第一个select语句中获取结果。现在,您根本无法获取第二行集的结果。您遇到的确切问题是什么?使用nextrowset()
我会得到错误消息,如果没有它,我只会得到数组中的第一个SELECT语句结果。是否有一种方法可以为每个select语句获取一个数组,或者我应该只进行两次不同的AJAX POST调用?请参阅我对两行集的回答,但请注意,在您的查询中,实际上有3个select
语句。您正在对数组调用nextrowset()
,因此会出现错误。sry,我编辑了主帖子,因此它现在包含两个select语句。问题是如果我不调用nextrowset()
我只从第一个select语句中获取结果。现在,您根本无法获取第二行集的结果。您遇到的确切问题是什么?使用nextrowset()
我会得到错误消息,如果没有它,我只会得到数组中的第一个SELECT语句结果。是否有一种方法可以为每个select语句获取一个数组,或者我应该只进行两次不同的AJAX POST调用?请参阅我对两行集的回答,但请注意,在您的查询中,实际上有3个select
语句。您正在对数组调用nextrowset()
,因此会出现错误。sry,我编辑了主帖子,因此它现在包含两个select语句。问题是如果我不调用nextrowset()
我只从第一个select语句中获取结果。现在,您根本无法获取第二行集的结果。您遇到的确切问题是什么?使用nextrowset()
我会得到错误消息,如果没有它,我只会得到数组中的第一个SELECT语句结果。有没有办法为每个select语句获取一个数组,或者我应该只进行两个不同的AJAX POST调用?请参阅我对两行集的回答,但请注意,在您的查询中,实际上有3个select
语句。谢谢,这就是我要找的。实际上,我现在正在重写JS函数,但我可能可以自己完成。谢谢,这就是我想要的。实际上,我现在正在重写JS函数,但我可能可以自己完成。谢谢,这就是我想要的。实际上,我现在正在重写JS函数,但我可能可以自己完成。
$result = $query->fetchAll();
// now $result contains your row with data
// get the next row set from the query
$query->nextRowset();
^^^^^^
// get the results of the second row set
$result2 = $query->fetchAll();
// You would have to see how you want to send both result sets...
echo json_encode( array('article' => $result, 'comments' => $result2) );
die();