<!DOCTYPE html>
<html lang="zh-Hans">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="renderer" content="webkit">
    <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=5">
    <title>关于 mysql:PHP PDO 和 SELECT COUNT(*) 查询 | 云图网</title>
    <meta name="keywords" content="count,mysql,pdo,SQL">
<meta name="description" content="PHP PDO and query with SELECT COUNT(*) 我在这里有一个非常奇怪的问题 - 这是 PDO 不能返回 num_rows 与 MySQL 结合使用的一个小解决方法。 我可以通过 phpmyadmin 将此查询直接提供给数据库： 123456789101112131415161718192…">
<meta property="og:type" content="article">
<meta property="og:url" content="https://blog.ytso.com/tech/bigdata/271057.html">
<meta property="og:site_name" content="云图网">
<meta property="og:title" content="关于 mysql:PHP PDO 和 SELECT COUNT(*) 查询">
<meta property="og:description" content="PHP PDO and query with SELECT COUNT(*) 我在这里有一个非常奇怪的问题 - 这是 PDO 不能返回 num_rows 与 MySQL 结合使用的一个小解决方法。 我可以通过 phpmyadmin 将此查询直接提供给数据库： 123456789101112131415161718192…">
<link rel="canonical" href="https://blog.ytso.com/tech/bigdata/271057.html">
<meta name="applicable-device" content="pc,mobile">
<meta http-equiv="Cache-Control" content="no-transform">
<link rel="shortcut icon" href="https://imgcdn.ytso.com/wp-content/uploads/2024/10/20241015181503433.jpg">
<link rel='dns-prefetch' href='//cdnjs.cloudflare.com' />
<style id='wp-img-auto-sizes-contain-inline-css' type='text/css'>
img:is([sizes=auto i],[sizes^="auto," i]){contain-intrinsic-size:3000px 1500px}
/*# sourceURL=wp-img-auto-sizes-contain-inline-css */
</style>
<link rel='stylesheet' id='stylesheet-css' href='https://blog.ytso.com/wp-content/themes/justnews/css/style.css?ver=6.21.5' type='text/css' media='all' />
<link rel='stylesheet' id='material-icons-css' href='https://blog.ytso.com/wp-content/themes/justnews/themer/assets/css/material-icons.css?ver=6.21.5' type='text/css' media='all' />
<link rel='stylesheet' id='remixicon-css' href='https://cdnjs.cloudflare.com/ajax/libs/remixicon/4.2.0/remixicon.min.css?ver=6.9.4' type='text/css' media='all' />
<link rel='stylesheet' id='font-awesome-css' href='https://blog.ytso.com/wp-content/themes/justnews/themer/assets/css/font-awesome.css?ver=6.21.5' type='text/css' media='all' />
<style id='wp-block-library-inline-css' type='text/css'>
:root{--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223;--wp-bound-block-color:var(--wp-block-synced-color);--wp-editor-canvas-background:#ddd;--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,160.5;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}.wp-element-button{cursor:pointer}:root .has-very-light-gray-background-color{background-color:#eee}:root .has-very-dark-gray-background-color{background-color:#313131}:root .has-very-light-gray-color{color:#eee}:root .has-very-dark-gray-color{color:#313131}:root .has-vivid-green-cyan-to-vivid-cyan-blue-gradient-background{background:linear-gradient(135deg,#00d084,#0693e3)}:root .has-purple-crush-gradient-background{background:linear-gradient(135deg,#34e2e4,#4721fb 50%,#ab1dfe)}:root .has-hazy-dawn-gradient-background{background:linear-gradient(135deg,#faaca8,#dad0ec)}:root .has-subdued-olive-gradient-background{background:linear-gradient(135deg,#fafae1,#67a671)}:root .has-atomic-cream-gradient-background{background:linear-gradient(135deg,#fdd79a,#004a59)}:root .has-nightshade-gradient-background{background:linear-gradient(135deg,#330968,#31cdcf)}:root .has-midnight-gradient-background{background:linear-gradient(135deg,#020381,#2874fc)}:root{--wp--preset--font-size--normal:16px;--wp--preset--font-size--huge:42px}.has-regular-font-size{font-size:1em}.has-larger-font-size{font-size:2.625em}.has-normal-font-size{font-size:var(--wp--preset--font-size--normal)}.has-huge-font-size{font-size:var(--wp--preset--font-size--huge)}.has-text-align-center{text-align:center}.has-text-align-left{text-align:left}.has-text-align-right{text-align:right}.has-fit-text{white-space:nowrap!important}#end-resizable-editor-section{display:none}.aligncenter{clear:both}.items-justified-left{justify-content:flex-start}.items-justified-center{justify-content:center}.items-justified-right{justify-content:flex-end}.items-justified-space-between{justify-content:space-between}.screen-reader-text{border:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-wrap:normal!important}.screen-reader-text:focus{background-color:#ddd;clip-path:none;color:#444;display:block;font-size:1em;height:auto;left:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}html :where(.has-border-color){border-style:solid}html :where([style*=border-top-color]){border-top-style:solid}html :where([style*=border-right-color]){border-right-style:solid}html :where([style*=border-bottom-color]){border-bottom-style:solid}html :where([style*=border-left-color]){border-left-style:solid}html :where([style*=border-width]){border-style:solid}html :where([style*=border-top-width]){border-top-style:solid}html :where([style*=border-right-width]){border-right-style:solid}html :where([style*=border-bottom-width]){border-bottom-style:solid}html :where([style*=border-left-width]){border-left-style:solid}html :where(img[class*=wp-image-]){height:auto;max-width:100%}:where(figure){margin:0 0 1em}html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:var(--wp-admin--admin-bar--height,0px)}@media screen and (max-width:600px){html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:0px}}
/*wp_block_styles_on_demand_placeholder:69caec9c997ae*/
/*# sourceURL=wp-block-library-inline-css */
</style>
<style id='classic-theme-styles-inline-css' type='text/css'>
/*! This file is auto-generated */
.wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none}
/*# sourceURL=/wp-includes/css/classic-themes.min.css */
</style>
<link rel='stylesheet' id='wpcom-member-css' href='https://blog.ytso.com/wp-content/plugins/wpcom-member/css/style.css?ver=1.7.19' type='text/css' media='all' />
<script type="text/javascript" src="https://blog.ytso.com/wp-includes/js/jquery/jquery.min.js?ver=3.7.1" id="jquery-core-js"></script>
<script type="text/javascript" src="https://blog.ytso.com/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1" id="jquery-migrate-js"></script>
<link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://blog.ytso.com/xmlrpc.php?rsd" />
<meta name='description' content='PHP PDO and query with SELECT COUNT(*) 我在这里有一个非常奇怪的问题 - 这是 PDO 不能返回 num_rows 与 MySQL 结合使用的一个小解决方法。 我可以通过 phpmyadmin 将此查询直接提供给数据库： 12345678910111213…' />
<meta name='keywords' content='count,mysql,pdo,SQL' />
<style>:root{--theme-color: #08c; --theme-hover: #07c; --logo-height: 32px; --logo-height-mobile: 26px; --menu-item-gap: 28px; --member-login-bg: url('https://blog.ytso.com/loginwall.jpg'); --header-bg-color: #fff; --header-bg-image: none; --theme-border-radius-s: 3px; --theme-border-radius-m: 5px; --theme-border-radius-l: 8px; --theme-border-radius-xl: 12px; --thumb-ratio-default: 480 / 300; --thumb-ratio-post: 480 / 300; --post-video-ratio: 860 / 482;}</style>
<link rel="icon" href="https://imgcdn.ytso.com/wp-content/uploads/2024/10/20241015181503433.jpg" sizes="32x32" />
<link rel="icon" href="https://imgcdn.ytso.com/wp-content/uploads/2024/10/20241015181503433.jpg" sizes="192x192" />
<link rel="apple-touch-icon" href="https://imgcdn.ytso.com/wp-content/uploads/2024/10/20241015181503433.jpg" />
<meta name="msapplication-TileImage" content="https://imgcdn.ytso.com/wp-content/uploads/2024/10/20241015181503433.jpg" />
    <!--[if lte IE 11]><script src="https://blog.ytso.com/wp-content/themes/justnews/js/update.js"></script><![endif]-->
</head>
<body class="wp-singular post-template-default single single-post postid-271057 single-format-standard wp-theme-justnews lang-cn el-boxed header-fixed">
<header class="header header-fluid">
    <div class="container">
        <div class="navbar-header">
            <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target=".navbar-collapse" aria-label="menu">
                <span class="icon-bar icon-bar-1"></span>
                <span class="icon-bar icon-bar-2"></span>
                <span class="icon-bar icon-bar-3"></span>
            </button>
                        <div class="logo">
                <a href="https://blog.ytso.com/" rel="home">
                    <img src="https://imgcdn.ytso.com/wp-content/uploads/2021/12/20211207181156143.png" alt="云图网">
                </a>
            </div>
        </div>
        <div class="collapse navbar-collapse mobile-style-0">
            <nav class="primary-menu"><ul id="menu-justnews-footer-menu" class="nav navbar-nav wpcom-adv-menu"><li class="menu-item"><a href="https://blog.ytso.com/category/industrynews">业界资讯</a></li>
<li class="menu-item current-post-ancestor active menu-item-style menu-item-style-1 dropdown"><a target="_blank" href="https://blog.ytso.com/category/tech" class="dropdown-toggle">技术专区</a>
<ul class="dropdown-menu menu-item-wrap menu-item-col-5">
	<li class="menu-item"><a href="https://blog.ytso.com/category/tech/cloud">云计算</a></li>
	<li class="menu-item"><a href="https://blog.ytso.com/category/tech/ai">人工智能</a></li>
	<li class="menu-item"><a href="https://blog.ytso.com/category/tech/safety">信息安全</a></li>
	<li class="menu-item current-post-ancestor current-post-parent active"><a href="https://blog.ytso.com/category/tech/bigdata">大数据</a></li>
	<li class="menu-item"><a href="https://blog.ytso.com/category/tech/dev">研发管理</a></li>
	<li class="menu-item"><a href="https://blog.ytso.com/category/tech/webdev">大前端</a></li>
	<li class="menu-item"><a href="https://blog.ytso.com/category/tech/opensource">开源</a></li>
	<li class="menu-item"><a href="https://blog.ytso.com/category/tech/aiops">智能运维</a></li>
	<li class="menu-item current-post-ancestor current-post-parent active"><a href="https://blog.ytso.com/category/tech/pnotes">编程笔记</a></li>
	<li class="menu-item"><a href="https://blog.ytso.com/category/tech/wp">WordPress</a></li>
</ul>
</li>
<li class="menu-item"><a href="https://blog.ytso.com/category/enterprise-strategic-planning">企业战略规划</a></li>
<li class="menu-item"><a href="https://blog.ytso.com/category/download">下载专区</a></li>
<li class="menu-item"><a href="https://blog.ytso.com/category/it%e6%b1%9f%e6%b9%96%e5%8f%b2">江湖史</a></li>
<li class="menu-item"><a href="https://blog.ytso.com/category/notes">随笔记录</a></li>
</ul></nav>            <div class="navbar-action">
                <div class="navbar-search-icon j-navbar-search"><i class="wpcom-icon wi"><svg aria-hidden="true"><use xlink:href="#wi-search"></use></svg></i></div><form class="navbar-search" action="https://blog.ytso.com/" method="get" role="search"><div class="navbar-search-inner"><i class="wpcom-icon wi navbar-search-close"><svg aria-hidden="true"><use xlink:href="#wi-close"></use></svg></i><input type="text" name="s" class="navbar-search-input" autocomplete="off" maxlength="100" placeholder="输入关键词搜索..." value=""><button class="navbar-search-btn" type="submit" aria-label="搜索"><i class="wpcom-icon wi"><svg aria-hidden="true"><use xlink:href="#wi-search"></use></svg></i></button></div></form>                    <div id="j-user-wrap">
                        <a class="login" href="https://blog.ytso.com/login">登录</a>
                        <a class="login register" href="https://blog.ytso.com/register">注册</a>
                    </div>
                                            <a class="wpcom-btn btn-primary btn-xs publish" href="https://blog.ytso.com/contribute">
                            <i class="fa fa-edit"></i> 投稿                        </a>
                                </div>
        </div>
    </div><!-- /.container -->
</header>

<div id="wrap">    <div class="wrap container">
        <ol class="breadcrumb" vocab="https://schema.org/" typeof="BreadcrumbList"><li class="home" property="itemListElement" typeof="ListItem"><a href="https://blog.ytso.com" property="item" typeof="WebPage"><span property="name" class="hide">云图网</span>首页</a><meta property="position" content="1"></li><li property="itemListElement" typeof="ListItem"><i class="wpcom-icon wi"><svg aria-hidden="true"><use xlink:href="#wi-arrow-right-3"></use></svg></i><a href="https://blog.ytso.com/category/tech" property="item" typeof="WebPage"><span property="name">技术专区</span></a><meta property="position" content="2"></li><li property="itemListElement" typeof="ListItem"><i class="wpcom-icon wi"><svg aria-hidden="true"><use xlink:href="#wi-arrow-right-3"></use></svg></i><a href="https://blog.ytso.com/category/tech/bigdata" property="item" typeof="WebPage"><span property="name">大数据</span></a><meta property="position" content="3"></li></ol>        <main class="main">
                            <article id="post-271057" class="post-271057 post type-post status-publish format-standard hentry category-bigdata category-pnotes tag-count tag-mysql tag-pdo tag-sql entry">
                    <div class="entry-main">
                                                                        <div class="entry-head">
                            <h1 class="entry-title">关于 mysql:PHP PDO 和 SELECT COUNT(*) 查询</h1>
                            <div class="entry-info">
                                                                <time class="entry-date published" datetime="2022-07-03T00:32:38+08:00" pubdate>
                                    2022年7月3日 00:32                                </time>
                                <span class="dot">•</span>
                                <a href="https://blog.ytso.com/category/tech/bigdata" rel="category tag">大数据</a>, <a href="https://blog.ytso.com/category/tech/pnotes" rel="category tag">编程笔记</a>                                                            </div>
                        </div>
                        
                                                <div class="entry-content text-indent text-justify">
                            <div id="toc">
<p class="toc-title"><strong>文章目录</strong><span class="toc-controller toc-controller-show">[隐藏]</span></p>
<ul>
<li class="toc-level2"><a href="#toc_1">PHP PDO and query with SELECT COUNT(*)</a></li>
</ul>
</div>
<h2 id="toc_1">PHP PDO and query with SELECT COUNT(*)</h2>
<div id="fc">
<p>我在这里有一个非常奇怪的问题 - 这是 PDO 不能返回 <wyn>num_rows</wyn> 与 MySQL 结合使用的一个小解决方法。</p>
<p>我可以通过 phpmyadmin 将此查询直接提供给数据库：</p>
<div class="codecolorer-container php dawn" style="overflow:auto;white-space:nowrap;width:100%;">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="line-numbers">
<div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34</div>
</td>
<td>
<div class="php codecolorer">SELECT <a href="http://www.php.net/count"><span class="kw3">COUNT</span></a><span class="br0">&#40;</span><span class="sy0">*</span><span class="br0">&#41;</span> <span class="kw1">AS</span> <a href="http://www.php.net/count"><span class="kw3">COUNT</span></a><br />
FROM <span class="br0">&#40;</span><span class="br0">&#40;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="br0">&#40;</span>SELECT <span class="st_h">'Key'</span> <span class="kw1">AS</span> tradeOrigin<span class="sy0">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;CONCAT<span class="br0">&#40;</span>skti<span class="sy0">.</span>tier<span class="sy0">,</span> <span class="st_h">' '</span><span class="sy0">,</span> skty<span class="sy0">.</span>type<span class="br0">&#41;</span> <span class="kw1">AS</span> trade<span class="sy0">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;CONCAT<span class="br0">&#40;</span><span class="st_h">'Amount: '</span><span class="sy0">,</span> t<span class="sy0">.</span>sourceKeyAmount<span class="br0">&#41;</span> <span class="kw1">AS</span> tradeInfo<span class="sy0">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="st_h">'Platinum'</span> <span class="kw1">AS</span> tradeToOrigin<span class="sy0">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;t<span class="sy0">.</span>destinationPlatinum <span class="kw1">AS</span> tradeTo<span class="sy0">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="st_h">''</span> <span class="kw1">AS</span> tradeToInfo<span class="sy0">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;u<span class="sy0">.</span>ingame <span class="kw1">AS</span> seller<span class="sy0">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;DAYSPASSED<span class="br0">&#40;</span>added<span class="br0">&#41;</span> <span class="kw1">AS</span> daysPassed<span class="sy0">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;DATEDIFF<span class="br0">&#40;</span>NOW<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">,</span> added<span class="br0">&#41;</span> <span class="kw1">AS</span> sortingSince<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; FROM trades t<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/join"><span class="kw3">JOIN</span></a> users u ON t<span class="sy0">.</span>sourceItem <span class="sy0">=</span> <span class="nu0">1</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; AND t<span class="sy0">.</span>destinationItem <span class="sy0">=</span> <span class="nu0">1</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; AND t<span class="sy0">.</span>userId <span class="sy0">=</span> u<span class="sy0">.</span>userId<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; AND t<span class="sy0">.</span>sourceModId <span class="sy0">=</span> <span class="nu0">18</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/join"><span class="kw3">JOIN</span></a> keytiers skti ON t<span class="sy0">.</span>sourceKeyTierId <span class="sy0">=</span> skti<span class="sy0">.</span>keyTierId<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/join"><span class="kw3">JOIN</span></a> keytypes skty ON t<span class="sy0">.</span>sourceKeyTypeId <span class="sy0">=</span> skty<span class="sy0">.</span>keyTypeId<span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp;UNION ALL<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="br0">&#40;</span>SELECT <span class="st_h">'Mod'</span> <span class="kw1">AS</span> tradeOrigin<span class="sy0">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;sm<span class="sy0">.</span>name <span class="kw1">AS</span> trade<span class="sy0">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;CONCAT<span class="br0">&#40;</span><span class="st_h">'Level: '</span><span class="sy0">,</span> <span class="kw1">IF</span><span class="br0">&#40;</span>t<span class="sy0">.</span>sourceModLevel <span class="sy0">=</span> <span class="nu0">0</span><span class="sy0">,</span> <span class="st_h">'Unranked'</span><span class="sy0">,</span> t<span class="sy0">.</span>sourceModLevel<span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="kw1">AS</span> tradeInfo<span class="sy0">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="st_h">'Platinum'</span> <span class="kw1">AS</span> tradeToOrigin<span class="sy0">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;t<span class="sy0">.</span>destinationPlatinum <span class="kw1">AS</span> tradeTo<span class="sy0">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="st_h">''</span> <span class="kw1">AS</span> tradeToInfo<span class="sy0">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;u<span class="sy0">.</span>ingame <span class="kw1">AS</span> seller<span class="sy0">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;DAYSPASSED<span class="br0">&#40;</span>added<span class="br0">&#41;</span> <span class="kw1">AS</span> daysPassed<span class="sy0">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;DATEDIFF<span class="br0">&#40;</span>NOW<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">,</span> added<span class="br0">&#41;</span> <span class="kw1">AS</span> sortingSince<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; FROM trades t<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/join"><span class="kw3">JOIN</span></a> users u ON t<span class="sy0">.</span>sourceItem <span class="sy0">=</span> <span class="nu0">2</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; AND t<span class="sy0">.</span>destinationItem <span class="sy0">=</span> <span class="nu0">1</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; AND t<span class="sy0">.</span>userId <span class="sy0">=</span> u<span class="sy0">.</span>userId<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; AND t<span class="sy0">.</span>sourceModId <span class="sy0">=</span> <span class="nu0">18</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/join"><span class="kw3">JOIN</span></a> mods sm ON t<span class="sy0">.</span>sourceModId <span class="sy0">=</span> sm<span class="sy0">.</span>modId<span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="kw1">AS</span> derived<span class="br0">&#41;</span></div>
</td>
</tr>
</tbody>
</table>
</div>
<p>它将按预期返回一行，列 <wyn>count</wyn> 和值 <wyn>1</wyn>。</p>
<p>但是当它需要通过我的框架时会出错。</p>
<p>执行代码：</p>
<div class="codecolorer-container php dawn" style="overflow:auto;white-space:nowrap;width:100%;">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="line-numbers">
<div>1<br />2<br />3<br />4<br />5</div>
</td>
<td>
<div class="php codecolorer"><span class="kw1">if</span> <span class="br0">&#40;</span><span class="sy0">!</span><a href="http://www.php.net/empty"><span class="kw3">empty</span></a><span class="br0">&#40;</span><span class="re0">$sql</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; try <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">echo</span> <span class="re0">$sql</span><span class="sy0">.</span><span class="st0">&quot;[cc lang=&quot;</span>php<span class="st0">&quot;]&quot;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/print_r"><span class="kw3">print_r</span></a><span class="br0">&#40;</span><span class="re0">$dataArray</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">echo</span><span class="st0">&quot;</span></div>
</td>
</tr>
</tbody>
</table>
</div>
<p>";<br />        $numrows = $dbh->num_rows($sql, $dataArray);<br />    } 捕捉(PDOException $ex){<br />// 回声 $ex;<br />        错误($前)；<br />    }<br />    //...<br />[/cc]</p>
<p>输出：</p>
<div class="codecolorer-container php dawn" style="overflow:auto;white-space:nowrap;width:100%;">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="line-numbers">
<div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32</div>
</td>
<td>
<div class="php codecolorer">&nbsp; <span class="br0">&#40;</span>SELECT <span class="st_h">'Key'</span> <span class="kw1">AS</span> tradeOrigin<span class="sy0">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; CONCAT<span class="br0">&#40;</span>skti<span class="sy0">.</span>tier<span class="sy0">,</span> <span class="st_h">' '</span><span class="sy0">,</span> skty<span class="sy0">.</span>type<span class="br0">&#41;</span> <span class="kw1">AS</span> trade<span class="sy0">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; CONCAT<span class="br0">&#40;</span><span class="st_h">'Amount: '</span><span class="sy0">,</span> t<span class="sy0">.</span>sourceKeyAmount<span class="br0">&#41;</span> <span class="kw1">AS</span> tradeInfo<span class="sy0">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st_h">'Platinum'</span> <span class="kw1">AS</span> tradeToOrigin<span class="sy0">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; t<span class="sy0">.</span>destinationPlatinum <span class="kw1">AS</span> tradeTo<span class="sy0">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st_h">''</span> <span class="kw1">AS</span> tradeToInfo<span class="sy0">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; u<span class="sy0">.</span>ingame <span class="kw1">AS</span> seller<span class="sy0">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; DAYSPASSED<span class="br0">&#40;</span>added<span class="br0">&#41;</span> <span class="kw1">AS</span> daysPassed<span class="sy0">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; DATEDIFF<span class="br0">&#40;</span>NOW<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">,</span> added<span class="br0">&#41;</span> <span class="kw1">AS</span> sortingSince<br />
&nbsp; &nbsp;FROM trades t<br />
&nbsp; &nbsp;<a href="http://www.php.net/join"><span class="kw3">JOIN</span></a> users u ON t<span class="sy0">.</span>sourceItem <span class="sy0">=</span> <span class="nu0">1</span><br />
&nbsp; &nbsp;AND t<span class="sy0">.</span>destinationItem <span class="sy0">=</span> <span class="nu0">1</span><br />
&nbsp; &nbsp;AND t<span class="sy0">.</span>userId <span class="sy0">=</span> u<span class="sy0">.</span>userId<br />
&nbsp; &nbsp;AND t<span class="sy0">.</span>sourceModId <span class="sy0">=</span> <span class="sy0">:</span>modId<br />
&nbsp; &nbsp;<a href="http://www.php.net/join"><span class="kw3">JOIN</span></a> keytiers skti ON t<span class="sy0">.</span>sourceKeyTierId <span class="sy0">=</span> skti<span class="sy0">.</span>keyTierId<br />
&nbsp; &nbsp;<a href="http://www.php.net/join"><span class="kw3">JOIN</span></a> keytypes skty ON t<span class="sy0">.</span>sourceKeyTypeId <span class="sy0">=</span> skty<span class="sy0">.</span>keyTypeId<span class="br0">&#41;</span><br />
UNION ALL<br />
&nbsp; <span class="br0">&#40;</span>SELECT <span class="st_h">'Mod'</span> <span class="kw1">AS</span> tradeOrigin<span class="sy0">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sm<span class="sy0">.</span>name <span class="kw1">AS</span> trade<span class="sy0">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; CONCAT<span class="br0">&#40;</span><span class="st_h">'Level: '</span><span class="sy0">,</span> <span class="kw1">IF</span><span class="br0">&#40;</span>t<span class="sy0">.</span>sourceModLevel <span class="sy0">=</span> <span class="nu0">0</span><span class="sy0">,</span> <span class="st_h">'Unranked'</span><span class="sy0">,</span> t<span class="sy0">.</span>sourceModLevel<span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="kw1">AS</span> tradeInfo<span class="sy0">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st_h">'Platinum'</span> <span class="kw1">AS</span> tradeToOrigin<span class="sy0">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; t<span class="sy0">.</span>destinationPlatinum <span class="kw1">AS</span> tradeTo<span class="sy0">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st_h">''</span> <span class="kw1">AS</span> tradeToInfo<span class="sy0">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; u<span class="sy0">.</span>ingame <span class="kw1">AS</span> seller<span class="sy0">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; DAYSPASSED<span class="br0">&#40;</span>added<span class="br0">&#41;</span> <span class="kw1">AS</span> daysPassed<span class="sy0">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; DATEDIFF<span class="br0">&#40;</span>NOW<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">,</span> added<span class="br0">&#41;</span> <span class="kw1">AS</span> sortingSince<br />
&nbsp; &nbsp;FROM trades t<br />
&nbsp; &nbsp;<a href="http://www.php.net/join"><span class="kw3">JOIN</span></a> users u ON t<span class="sy0">.</span>sourceItem <span class="sy0">=</span> <span class="nu0">2</span><br />
&nbsp; &nbsp;AND t<span class="sy0">.</span>destinationItem <span class="sy0">=</span> <span class="nu0">1</span><br />
&nbsp; &nbsp;AND t<span class="sy0">.</span>userId <span class="sy0">=</span> u<span class="sy0">.</span>userId<br />
&nbsp; &nbsp;AND t<span class="sy0">.</span>sourceModId <span class="sy0">=</span> <span class="sy0">:</span>modId<br />
&nbsp; &nbsp;<a href="http://www.php.net/join"><span class="kw3">JOIN</span></a> mods sm ON t<span class="sy0">.</span>sourceModId <span class="sy0">=</span> sm<span class="sy0">.</span>modId<span class="br0">&#41;</span></div>
</td>
</tr>
</tbody>
</table>
</div>
<div class="codecolorer-container php dawn" style="overflow:auto;white-space:nowrap;width:100%;">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="line-numbers">
<div>1<br />2<br />3<br />4</div>
</td>
<td>
<div class="php codecolorer"><a href="http://www.php.net/array"><span class="kw3">Array</span></a><br />
<span class="br0">&#40;</span><br />
&nbsp; &nbsp; <span class="br0">&#91;</span><span class="sy0">:</span>modId<span class="br0">&#93;</span> <span class="sy0">=&gt;</span> <span class="nu0">18</span><br />
<span class="br0">&#41;</span></div>
</td>
</tr>
</tbody>
</table>
</div>
<p>这进入(注意：<wyn>$this-&gt;dbh</wyn> 是 <wyn>PDO</wyn> 实例)：</p>
<div class="codecolorer-container php dawn" style="overflow:auto;white-space:nowrap;width:100%;">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="line-numbers">
<div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15</div>
</td>
<td>
<div class="php codecolorer"><span class="co4">/**<br />
&nbsp;* Returns the number of rows that this query has.<br />
&nbsp;* <br />
&nbsp;* @param type $query &nbsp; The input query<br />
&nbsp;* @param type $values &nbsp;The values<br />
&nbsp;* @return type Number of rows<br />
&nbsp;*/</span><br />
<span class="kw2">public</span> <span class="kw2">function</span> num_rows<span class="br0">&#40;</span><span class="re0">$query</span><span class="sy0">,</span> <span class="re0">$values</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="re0">$newquery</span> <span class="sy0">=</span><span class="st0">&quot;SELECT COUNT(*) AS count FROM ((<span class="es4">{$query}</span>) AS derived)&quot;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">echo</span> <span class="re0">$newquery</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="re0">$statement</span> <span class="sy0">=</span> <span class="re0">$this</span><span class="sy0">-&gt;</span><span class="me1">query</span><span class="br0">&#40;</span><span class="re0">$newquery</span><span class="sy0">,</span> <span class="re0">$values</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="re0">$i</span> <span class="sy0">=</span> <span class="re0">$statement</span><span class="sy0">-&gt;</span><span class="me1">fetch</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">echo</span><span class="st0">&quot;[cc lang=&quot;</span>php<span class="st0">&quot;]&quot;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <a href="http://www.php.net/print_r"><span class="kw3">print_r</span></a><span class="br0">&#40;</span><span class="re0">$i</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">echo</span><span class="st0">&quot;</span></div>
</td>
</tr>
</tbody>
</table>
</div>
<p>";<br />    返回$i->count；<br />}<br />[/cc]</p>
<p>它回响：</p>
<div class="codecolorer-container php dawn" style="overflow:auto;white-space:nowrap;width:100%;">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="line-numbers">
<div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34</div>
</td>
<td>
<div class="php codecolorer">SELECT <a href="http://www.php.net/count"><span class="kw3">COUNT</span></a><span class="br0">&#40;</span><span class="sy0">*</span><span class="br0">&#41;</span> <span class="kw1">AS</span> <a href="http://www.php.net/count"><span class="kw3">COUNT</span></a><br />
FROM <span class="br0">&#40;</span><span class="br0">&#40;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="br0">&#40;</span>SELECT <span class="st_h">'Key'</span> <span class="kw1">AS</span> tradeOrigin<span class="sy0">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;CONCAT<span class="br0">&#40;</span>skti<span class="sy0">.</span>tier<span class="sy0">,</span> <span class="st_h">' '</span><span class="sy0">,</span> skty<span class="sy0">.</span>type<span class="br0">&#41;</span> <span class="kw1">AS</span> trade<span class="sy0">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;CONCAT<span class="br0">&#40;</span><span class="st_h">'Amount: '</span><span class="sy0">,</span> t<span class="sy0">.</span>sourceKeyAmount<span class="br0">&#41;</span> <span class="kw1">AS</span> tradeInfo<span class="sy0">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="st_h">'Platinum'</span> <span class="kw1">AS</span> tradeToOrigin<span class="sy0">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;t<span class="sy0">.</span>destinationPlatinum <span class="kw1">AS</span> tradeTo<span class="sy0">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="st_h">''</span> <span class="kw1">AS</span> tradeToInfo<span class="sy0">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;u<span class="sy0">.</span>ingame <span class="kw1">AS</span> seller<span class="sy0">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;DAYSPASSED<span class="br0">&#40;</span>added<span class="br0">&#41;</span> <span class="kw1">AS</span> daysPassed<span class="sy0">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;DATEDIFF<span class="br0">&#40;</span>NOW<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">,</span> added<span class="br0">&#41;</span> <span class="kw1">AS</span> sortingSince<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; FROM trades t<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/join"><span class="kw3">JOIN</span></a> users u ON t<span class="sy0">.</span>sourceItem <span class="sy0">=</span> <span class="nu0">1</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; AND t<span class="sy0">.</span>destinationItem <span class="sy0">=</span> <span class="nu0">1</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; AND t<span class="sy0">.</span>userId <span class="sy0">=</span> u<span class="sy0">.</span>userId<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; AND t<span class="sy0">.</span>sourceModId <span class="sy0">=</span> <span class="sy0">:</span>modId<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/join"><span class="kw3">JOIN</span></a> keytiers skti ON t<span class="sy0">.</span>sourceKeyTierId <span class="sy0">=</span> skti<span class="sy0">.</span>keyTierId<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/join"><span class="kw3">JOIN</span></a> keytypes skty ON t<span class="sy0">.</span>sourceKeyTypeId <span class="sy0">=</span> skty<span class="sy0">.</span>keyTypeId<span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp;UNION ALL<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="br0">&#40;</span>SELECT <span class="st_h">'Mod'</span> <span class="kw1">AS</span> tradeOrigin<span class="sy0">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;sm<span class="sy0">.</span>name <span class="kw1">AS</span> trade<span class="sy0">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;CONCAT<span class="br0">&#40;</span><span class="st_h">'Level: '</span><span class="sy0">,</span> <span class="kw1">IF</span><span class="br0">&#40;</span>t<span class="sy0">.</span>sourceModLevel <span class="sy0">=</span> <span class="nu0">0</span><span class="sy0">,</span> <span class="st_h">'Unranked'</span><span class="sy0">,</span> t<span class="sy0">.</span>sourceModLevel<span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="kw1">AS</span> tradeInfo<span class="sy0">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="st_h">'Platinum'</span> <span class="kw1">AS</span> tradeToOrigin<span class="sy0">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;t<span class="sy0">.</span>destinationPlatinum <span class="kw1">AS</span> tradeTo<span class="sy0">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="st_h">''</span> <span class="kw1">AS</span> tradeToInfo<span class="sy0">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;u<span class="sy0">.</span>ingame <span class="kw1">AS</span> seller<span class="sy0">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;DAYSPASSED<span class="br0">&#40;</span>added<span class="br0">&#41;</span> <span class="kw1">AS</span> daysPassed<span class="sy0">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;DATEDIFF<span class="br0">&#40;</span>NOW<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">,</span> added<span class="br0">&#41;</span> <span class="kw1">AS</span> sortingSince<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; FROM trades t<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/join"><span class="kw3">JOIN</span></a> users u ON t<span class="sy0">.</span>sourceItem <span class="sy0">=</span> <span class="nu0">2</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; AND t<span class="sy0">.</span>destinationItem <span class="sy0">=</span> <span class="nu0">1</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; AND t<span class="sy0">.</span>userId <span class="sy0">=</span> u<span class="sy0">.</span>userId<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; AND t<span class="sy0">.</span>sourceModId <span class="sy0">=</span> <span class="sy0">:</span>modId<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/join"><span class="kw3">JOIN</span></a> mods sm ON t<span class="sy0">.</span>sourceModId <span class="sy0">=</span> sm<span class="sy0">.</span>modId<span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="kw1">AS</span> derived<span class="br0">&#41;</span></div>
</td>
</tr>
</tbody>
</table>
</div>
<div class="codecolorer-container php dawn" style="overflow:auto;white-space:nowrap;width:100%;">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="line-numbers">
<div>1<br />2<br />3<br />4</div>
</td>
<td>
<div class="php codecolorer">stdClass Object<br />
<span class="br0">&#40;</span><br />
&nbsp; &nbsp; <span class="br0">&#91;</span><a href="http://www.php.net/count"><span class="kw3">count</span></a><span class="br0">&#93;</span> <span class="sy0">=&gt;</span> <span class="nu0">0</span><br />
<span class="br0">&#41;</span></div>
</td>
</tr>
</tbody>
</table>
</div>
<p>调用：</p>
<div class="codecolorer-container php dawn" style="overflow:auto;white-space:nowrap;width:100%;">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="line-numbers">
<div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29</div>
</td>
<td>
<div class="php codecolorer"><span class="co4">/**<br />
&nbsp;* Can be called to create a query. Use either unnamed or named placeholders for the prepared statements.<br />
&nbsp;* <br />
&nbsp;* Example: $dbh-&gt;query(&quot;INSERT INTO table (data1, data2) VALUES(?, ?)&quot;, array($data1, $data2));<br />
&nbsp;* <br />
&nbsp;* @param type $query &nbsp; The input query, including unnamed or named placeholders<br />
&nbsp;* @param type $values &nbsp;The input values. If it's not an array, then it will be an one-element array<br />
&nbsp;* @return type The statement constructed by this query<br />
&nbsp;*/</span><br />
<span class="kw2">public</span> <span class="kw2">function</span> query<span class="br0">&#40;</span><span class="re0">$query</span><span class="sy0">,</span> <span class="re0">$values</span> <span class="sy0">=</span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><span class="sy0">!</span><a href="http://www.php.net/is_array"><span class="kw3">is_array</span></a><span class="br0">&#40;</span><span class="re0">$values</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$values</span> <span class="sy0">=</span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">&#40;</span><span class="re0">$values</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; <span class="re0">$statement</span> <span class="sy0">=</span> <span class="re0">$this</span><span class="sy0">-&gt;</span><span class="me1">dbh</span><span class="sy0">-&gt;</span><span class="me1">prepare</span><span class="br0">&#40;</span><span class="re0">$query</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="re0">$statement</span><span class="sy0">-&gt;</span><span class="me1">setFetchMode</span><span class="br0">&#40;</span>PDO<span class="sy0">::</span><span class="me2">FETCH_OBJ</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>is_assoc<span class="br0">&#40;</span><span class="re0">$values</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">foreach</span> <span class="br0">&#40;</span><span class="re0">$values</span> <span class="kw1">as</span> <span class="re0">$key</span> <span class="sy0">=&gt;</span> <span class="re0">$value</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$statement</span><span class="sy0">-&gt;</span><span class="me1">bindValue</span><span class="br0">&#40;</span><span class="re0">$key</span><span class="sy0">,</span> <span class="re0">$value</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; <span class="kw1">else</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$i</span> <span class="sy0">=</span> <span class="nu0">1</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">foreach</span> <span class="br0">&#40;</span><span class="re0">$values</span> <span class="kw1">as</span> <span class="re0">$value</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$statement</span><span class="sy0">-&gt;</span><span class="me1">bindValue</span><span class="br0">&#40;</span><span class="re0">$i</span><span class="sy0">++,</span> <span class="re0">$value</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; <span class="re0">$statement</span><span class="sy0">-&gt;</span><span class="me1">execute</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">return</span> <span class="re0">$statement</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span></div>
</td>
</tr>
</tbody>
</table>
</div>
<p><wyn>query</wyn> 方法在过去已被证明有效，而且奇怪的是，<wyn>num_rows</wyn> 确实适用于其他一些正确返回 6 作为计数的任意查询。</p>
<p>我真的被困在这里，不知道发生了什么，请帮帮我。</p>
<p>更新：</p>
<p>显然是一个设置将我引入了这个问题：<wyn>$this-&gt;dbh-&gt;setAttribute(PDO::ATTR_EMULATE_PREPARES, false);</wyn>.</p>
<p>但是我仍然想知道它为什么会导致问题，因为我不能只是禁用它，因为我将它用于 <wyn>LIMIT</wyn> 子句，否则会失败(关于这个问题的大量 SO 帖子)。帖子示例如下：如何在 LIMIT 子句中应用 bindValue 方法？</p>
<div class="suo-content">
<div style="text-align: right;">
<div class="xContent" style="display: none;">
<ul>
<li>@halfer 添加了我过去遇到的一个。
</li>
<li>
@Downvoter：愿意解释一下吗？
</li>
<li>
@halfer 关闭一个题外话的问题怎么样，该问题明确要求修复代码，而不是安慰操作员？
</li>
<li>
如果它用英语描述代码中发生的事情，则表明对正在解决的问题的理解很少，因此不仅仅是"修复我的代码"或就此无关主题。</li>
</ul>
</div></div>
</p>
</div>
<hr>
<div class="codecolorer-container php dawn" style="overflow:auto;white-space:nowrap;width:100%;">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="line-numbers">
<div>1</div>
</td>
<td>
<div class="php codecolorer"><span class="re0">$statement</span><span class="sy0">-&gt;</span><span class="me1">bindValue</span><span class="br0">&#40;</span><span class="re0">$key</span><span class="sy0">,</span> <span class="re0">$value</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</td>
</tr>
</tbody>
</table>
</div>
<p>你试过用 <wyn>$statement-&gt;bindParam</wyn> 代替吗？ </p>
<p>因为结果不同，Sql本身没有问题，但问题要么出在values上，要么出在bind上。</p>
<div class="suo-content">
<div style="text-align: right;">
<div class="xContent" style="display: none;">
<ul>
<li>
那在过去造成了更多的问题并且不是我想要的，我想绑定值，这个语句本身应该不会引起任何问题。</li>
</ul>
</div></div>
</p>
</div>
<hr>
<p>根据评论中的讨论，您现在似乎掌握了足够的信息：您的 PDO 设置正在阻止您的绑定工作。</p>
<p>您说您正在使用该设置来使 LIMIT 工作 - 我猜想专门绑定到 LIMIT。您通常不能这样做，因为绑定仅用于参数值(即在 <wyn>WHERE</wyn> 子句中)，而 <wyn>LIMIT</wyn> 子句不被视为参数。你能用另一种方式重写绑定的 <wyn>LIMIT</wyn> 查询吗？</p>
<p>最后，根据评论，确保您使用的任何别名都是小写的，并且不是保留字。您可能可以不区分大小写地使用这些，但无论如何都有代码约定是好的！</p>
<div class="suo-content">
<div style="text-align: right;">
<div class="xContent" style="display: none;">
<ul>
<li>两种方式(绑定和 <wyn>execute()</wyn> 或只是 <wyn>execute($data)</wyn> 我相信从(php.net/manual/en/pdostatement.execute.php)完全相同，也对其进行了测试并且输出没有变化。
</li>
<li>
啊，是的 - 我看到 <wyn>$this-&gt;query</wyn> 并认为这是指 PDO 方法。那是你自己的方法。
</li>
<li>
好的，所以尝试将 18 值硬连接到查询中 - 听起来这不是问题，但仍然值得检查。
</li>
<li>
<wyn>$this-&gt;dbh-&gt;setAttribute(PDO::ATTR_EMULATE_PREPARES, false);</wyn> 似乎是问题的原因，没有它计数工作，但是这是限制 PDO 工作的解决方法。
</li>
<li>
我不知道那个设置，但这可能很有用。我不知道您需要更改任何 PDO 设置才能使 <wyn>LIMIT</wyn> 工作。
</li>
<li>
我最终用 <wyn>LIMIT</wyn> 这样做了。无论如何，这部分都无法进行 SQL 注入(没有用户输入)，但我仍然没有看到我原来的问题，但它肯定与模拟准备有关。
</li>
</ul>
</div></div>
</p>
</div>
<hr>
</div>
<div class="entry-readmore"><div class="entry-readmore-btn"></div></div>                                                        <div class="entry-copyright"><p>原创文章，作者：ItWorker，如若转载，请注明出处：https://blog.ytso.com/tech/bigdata/271057.html</p></div>                        </div>

                        <div class="entry-tag"><a href="https://blog.ytso.com/tag/count" rel="tag">count</a><a href="https://blog.ytso.com/tag/mysql" rel="tag">mysql</a><a href="https://blog.ytso.com/tag/pdo" rel="tag">pdo</a><a href="https://blog.ytso.com/tag/sql" rel="tag">SQL</a></div>
                        <div class="entry-action">
                            <div class="btn-zan" data-id="271057"><i class="wpcom-icon wi"><svg aria-hidden="true"><use xlink:href="#wi-thumb-up-fill"></use></svg></i> 赞 <span class="entry-action-num">(0)</span></div>
                                                    </div>

                        <div class="entry-bar">
                            <div class="entry-bar-inner">
                                                                <div class="entry-bar-info entry-bar-info2">
                                    <div class="info-item meta">
                                                                                    <a class="meta-item j-heart" href="javascript:;" data-id="271057"><i class="wpcom-icon wi"><svg aria-hidden="true"><use xlink:href="#wi-star"></use></svg></i> <span class="data">0</span></a>                                        <a class="meta-item" href="#comments"><i class="wpcom-icon wi"><svg aria-hidden="true"><use xlink:href="#wi-comment"></use></svg></i> <span class="data">0</span></a>                                                                            </div>
                                    <div class="info-item share">
                                                                                    <a class="meta-item mobile j-mobile-share" href="javascript:;" data-id="271057" data-qrcode="https://blog.ytso.com/tech/bigdata/271057.html">
                                                <i class="wpcom-icon wi"><svg aria-hidden="true"><use xlink:href="#wi-share"></use></svg></i> 生成海报                                            </a>
                                                                                    <a class="meta-item wechat" data-share="wechat" target="_blank" rel="nofollow noopener noreferrer" href="#">
                                                <i class="wpcom-icon wi"><svg aria-hidden="true"><use xlink:href="#wi-wechat"></use></svg></i>                                            </a>
                                                                                    <a class="meta-item weibo" data-share="weibo" target="_blank" rel="nofollow noopener noreferrer" href="#">
                                                <i class="wpcom-icon wi"><svg aria-hidden="true"><use xlink:href="#wi-weibo"></use></svg></i>                                            </a>
                                                                                    <a class="meta-item qq" data-share="qq" target="_blank" rel="nofollow noopener noreferrer" href="#">
                                                <i class="wpcom-icon wi"><svg aria-hidden="true"><use xlink:href="#wi-qq"></use></svg></i>                                            </a>
                                                                                    <a class="meta-item qzone" data-share="qzone" target="_blank" rel="nofollow noopener noreferrer" href="#">
                                                <i class="wpcom-icon wi"><svg aria-hidden="true"><use xlink:href="#wi-qzone"></use></svg></i>                                            </a>
                                                                                    <a class="meta-item douban" data-share="douban" target="_blank" rel="nofollow noopener noreferrer" href="#">
                                                <i class="wpcom-icon wi"><svg aria-hidden="true"><use xlink:href="#wi-douban"></use></svg></i>                                            </a>
                                                                                    <a class="meta-item linkedin" data-share="linkedin" target="_blank" rel="nofollow noopener noreferrer" href="#">
                                                <i class="wpcom-icon wi"><svg aria-hidden="true"><use xlink:href="#wi-linkedin"></use></svg></i>                                            </a>
                                                                                    <a class="meta-item facebook" data-share="facebook" target="_blank" rel="nofollow noopener noreferrer" href="#">
                                                <i class="wpcom-icon wi"><svg aria-hidden="true"><use xlink:href="#wi-facebook"></use></svg></i>                                            </a>
                                                                                    <a class="meta-item twitter" data-share="twitter" target="_blank" rel="nofollow noopener noreferrer" href="#">
                                                <i class="wpcom-icon wi"><svg aria-hidden="true"><use xlink:href="#wi-twitter"></use></svg></i>                                            </a>
                                                                            </div>
                                    <div class="info-item act">
                                        <a href="javascript:;" id="j-reading"><i class="wpcom-icon wi"><svg aria-hidden="true"><use xlink:href="#wi-article"></use></svg></i></a>
                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>
                                            <div class="entry-page">
                    <div class="entry-page-prev entry-page-nobg">
                <a href="https://blog.ytso.com/tech/bigdata/271056.html" title="MySQL LEFT JOIN json 字段与表中的另一个 id" rel="prev">
                    <span>MySQL LEFT JOIN json 字段与表中的另一个 id</span>
                </a>
                <div class="entry-page-info">
                    <span class="pull-left"><i class="wpcom-icon wi"><svg aria-hidden="true"><use xlink:href="#wi-arrow-left-double"></use></svg></i> 上一篇</span>
                    <span class="pull-right">2022年7月3日 00:32</span>
                </div>
            </div>
                <error>
    <code>wp_die</code>
    <title><![CDATA[WordPress &amp;rsaquo; Error]]></title>
    <message><![CDATA[&lt;h1&gt;Error establishing a Redis connection&lt;/h1&gt;
&lt;p&gt;To disable Redis, delete the &lt;code&gt;object-cache.php&lt;/code&gt; file in the &lt;code&gt;/wp-content/&lt;/code&gt; directory.&lt;/p&gt;
]]></message>
    <data>
        <status>500</status>
    </data>
</error>
<!--
Performance optimized by Redis Object Cache. Learn more: https://wprediscache.com

Retrieved 1749 objects (316 KB) from Redis using Predis (v2.4.0).
-->
