dongroufan6846
2018-08-18 06:16
浏览 63
已采纳

如何使用数据库扩展PDO在PHP中编写多个查询

I would like to write this MYSQL query

SET @val := 0;
SELECT `my_table`.* FROM `my_table` HAVING (@val := @val + 1) > 0;

inside PHP code that using database extention PDO!

I've seen that mysqli have mysqli_multi_query() but i do not know does PDO support multi queries by some how?!

I've try this

<?PHP
// i'm connected to db

    $sql = "SET @val := 0;";
    $sql .= "SELECT `my_table`.* FROM `my_table` HAVING (@val := @val + 1) > 0;";
?>
<table>
    <tr>
        <th>id</th>
        <th>name</th>
    </tr>
    <?PHP foreach($db->query($sql) as $row){ ?>
    <tr>
        <td><?php echo $row['id']; ?></td>
        <td><?php echo $row['name']; ?></td>
    </tr>
    <?php } ?>
</table>

But did not works!

Fatal error: Uncaught PDOException: SQLSTATE[HY000]: General error in \path\test.php:25 Stack trace: #0 {main} thrown in \path\test.php on line 25

and line 25 is : <?PHP foreach($db->query($sql) as $row){ ?> looks like it not passing the query! so any idea

图片转代码服务由CSDN问答提供 功能建议

我想写这个MYSQL查询

  SET @  val:= 0; 
SELECT`my_table`。* FROM`my_table` HAVING(@val:= @val + 1)&gt;  0; 
   
 
 

使用数据库扩展 PDO

我已经看到 mysqli mysqli_multi_query()但是我不知道 PDO 是否支持多个查询?#< / p>

我试过这个

 &lt;?PHP 
 //我已连接到db 
 
 $ sql =  “SET @val:= 0;”; 
 $ sql。=“SELECT`my_table`。* FROM`my_table` HAVING(@val:= @val + 1)&gt; 0;”; 
?&gt; \  n&lt; table&gt; 
&lt; tr&gt; 
&lt; th&gt; id&lt; / th&gt; 
&lt; th&gt; name&lt; / th&gt; 
&lt; / tr&gt; 
&lt;?PHP foreach($ db-  &gt;查询($ sql)为$ row){?&gt; 
&lt; tr&gt; 
&lt; td&gt;&lt;?php echo $ row ['id'];  ?&gt;&lt; / td&gt; 
&lt; td&gt;&lt;?php echo $ row ['name'];  ?&gt;&lt; / td&gt; 
&lt; / tr&gt; 
&lt;?php}?&gt; 
&lt; / table&gt; 
   
 
 

但是 没有用!

 致命错误:未捕获PDOException:SQLSTATE [HY000]:\ path \ test.php中的常规错误:25堆栈跟踪:#0 {main}抛出\ 第25行上的path \ test.php 
   
 
 

第25行是:&lt;?PHP foreach($ db-&gt; query($ sql)as as $ row){?&gt; 看起来好像没有传递查询! 所以任何想法

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

4条回答 默认 最新

相关推荐 更多相似问题