Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
mysql PHP PDO在一个POST请求上执行2个查询_Php_Mysql_Pdo - Fatal编程技术网

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();