luq*_*ita 0 php mysql pdo fetchall
我有以下代码:
$sql = "SELECT table.field, table2.field2 FROM
table, table2";
$stmt = $this->db->prepare($sql);
$stmt->execute();
$x = $stmt->fetchAll(PDO::FETCH_ASSOC);
Run Code Online (Sandbox Code Playgroud)
我知道这是不够的信息,但我不明白为什么代码只有在我评论fetchAll行时才会执行.当该行执行时,我没有得到任何东西,只是空白浏览器,没有错误或任何东西.在萤火虫中,响应是空白的......它能是什么?
你是做一个笛卡尔乘积的table和table2.这可能是大量的数据.
对于表中的每一行,您将获得所有行table2.因此,如果table有100行,而table2有500行,您的查询将尝试获取50.000行.
你要么想要加入:
SELECT table.field, table2.field2
FROM table
JOIN table2
ON table.field3 = table2.field3
Run Code Online (Sandbox Code Playgroud)
或者是UNION
SELECT table.field AS FIELDNAME FROM table
UNION ALL
SELECT table2.field2 AS FIELDNAME FROM table2
Run Code Online (Sandbox Code Playgroud)
如果笛卡尔积非常符合您的要求,请尝试添加LIMIT,看看是否有效.然后增加或删除限制
SELECT table.field, table2.field2
FROM table, table2 LIMIT 10
Run Code Online (Sandbox Code Playgroud)
取决于您的表包含的内容(您确实没有提供足够的信息).
| 归档时间: |
|
| 查看次数: |
312 次 |
| 最近记录: |