php - 使用 php 代码调用 MYSQL CREATE VIEW?

标签 php mysql view

这里需要一些启示,这是我在这里的第一篇文章。

我想使用 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/

相关文章:

PHP 在下划线之前获取字符串中的所有内容

php - 如何在 LIMIT 子句中应用 bindValue 方法?

mysql - URL 中不可见的前导字符

php - 用PDO重写mysql_*(类似表格的内容)

function - 授予使用函数的 View 的选择权

php - 可以用 C 或 C++ 编写 HTML 表单

php - 从 MySQL 获取多行输出

android - 在 Android 上一次触摸两个 View

mysql - 如何禁用和启用表 mysql 中的所有约束,包括。 PK FK CHK UNI 等

java - Android 应用程序的 MVC 逻辑