这里需要一些启示,这是我在这里的第一篇文章。
我想使用 php 调用和使用我之前创建的 mysql View ...这可能吗? 或者换句话说, 我想知道....我们可以或我们如何调用我们已经使用 php 创建的 mysql View ?减少长查询编码
标准通用代码如下:
$sql= " SELECT shipping.tarrif1, city.city_name
FROM shipping JOIN city
ON shipping.id_city = city.id_city";
$db->QueryArray($sql);
while ($row = $db->Row()) {
echo $row->city_name. " - " . $row->tarrif1 . "<br />\n";
}
现在是 MYSQL View :
$sql= " CREATE VIEW shipsumarry AS SELECT shipping.tarrif1, city.city_name
FROM shipping JOIN city
ON shipping.id_city = city.id_city";
纯MYSQL命令:
query: SELECT * FROM shipsummary
在 PHP 中:
$sql = i'm badly stuck here...please help
我们如何使用 php 访问它。
先谢谢
补充 1:
好的...让我重写这个例子:
$sql1= " CREATE VIEW shipsumarry AS SELECT shipping.tarrif1, city.city_name
FROM shipping JOIN city
ON shipping.id_city = city.id_city";
$sql2= "SELECT * FROM shipsummary";
$db->QueryArray($sql2);
$sql2 看不到 shipsummary VIEW,因为它已经在不同的 var 中
如何使用并执行 $sql1 ? & $sql2?
最佳答案
这个过程在 PHP 中是相同的 - 客户端 (PHP) 将 MySQL View 视为常规表,因此将其查询为
mysql_query("SELECT * FROM shipsummary");
// Or for whatever framework you're using:
$db->QueryArray("SELECT * FROM shipsummary");
应该可以正常工作。如果它不能正常工作,则您用来访问该 View 的 MySQL 用户的权限可能已损坏。 (虽然似乎不太可能)。
更新
在你编辑问题后,我可以很清楚地看到问题。
$sql1= " CREATE VIEW shipsumarry AS SELECT shipping.tarrif1, city.city_name
FROM shipping JOIN city
ON shipping.id_city = city.id_city";
$sql2= "SELECT * FROM shipsummary";
// Here, you need to execute $sql1 before $sql2 is useful.
$db->QueryArray($sql1);
// Now execute $sql2
$db->QueryArray($sql2);
我们不知道您使用的是什么数据库类或框架,但是如果有一个类似 QueryArray()
的方法不返回结果集,而只是执行一条语句,使用它来创建 View 。
现在,说了这么多......
除非每次执行此代码时都必须更改 View 的定义,并且除非您有理由在每次执行此脚本结束时 DROP VIEW shipsummary
,否则它会很远,远,远......更有意义的是简单地在数据库中创建 View ,它将永远保留在那里,而不是继续使用 PHP 重新创建它。 View 一旦创建,就会保持创建状态。
不要将它们视为临时查询时间/代码保护程序。在数据库中创建您需要ONCE 的 View (使用 PHPMyAdmin 或 mysql CLI,或者您创建表的任何方式),并使用 PHP 访问它们。
关于php - 使用 php 代码调用 MYSQL CREATE VIEW?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7689715/