问题1
好的,我需要清除一个混乱。我在同一页面上有多个查询。
$abc = $pdo->prepare("SELECT COUNT(*) FROM tablename");
$abc-> execute();
$count1 = $abc->fetchColumn();
$bcd = $pdo->prepare("SELECT COUNT(*) FROM tablename");
$bcd-> execute();
$count2 = $bcd->fetchColumn();
$def = $pdo->prepare("SELECT COUNT(*) FROM tablename");
$def-> execute();
$count3 = $def->fetchColumn();
这很好用。但是为每个查询声明一个新名称有点让我感到恼火。因此,我认为如果所有查询都可以写在同一个变量中,那会不会很好?那么,如果我只在一个变量中编写这些查询,那会是错误的吗?如下面的代码。
$stmt = $pdo->prepare("SELECT COUNT(*) FROM tablename");
$stmt-> execute();
$count1 = $stmt->fetchColumn();
$stmt = $pdo->prepare("SELECT COUNT(*) FROM tablename");
$stmt-> execute();
$count2 = $stmt->fetchColumn();
$stmt = $pdo->prepare("SELECT COUNT(*) FROM tablename");
$stmt-> execute();
$count3 = $stmt->fetchColumn();
以同样的方式编写查询会在将来出现错误吗?在同一个变量中写入是否安全?有什么区别吗?哪种方法更好?
问题2
要获得$count1, $count2 and $count3
,我必须传递三个不同的查询。但我更喜欢尽可能少地编写查询以防止使用大量资源。那么,有必要这样做吗?或者,是否可以在一个查询中获取所有内容?如果是,那怎么办?
请帮我澄清这些疑惑。
答案 0 :(得分:0)
只要您确定不会使用第一个变量,就可以使用它的名称来定义另一个变量。
然而,取消设置未使用的变量是一个好习惯。
对于您的第二个问题,您可以使用Unions
在一个查询中合并三个查询,如下所示:
我假设你要求那些特定的三个查询
SELECT COUNT(*) FROM `table1`
UNION
SELECT COUNT(*) FROM `table2`
UNION
SELECT COUNT(*) FROM `table3`