使用php代码调用MYSQL CREATE VIEW


Calling MYSQL CREATE VIEW using php code?

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

我想调用和使用我以前创建的mysql视图使用php…这可能吗?换句话说,我想知道……我们可以或者我们如何调用mysql视图,我们已经使用php创建?减少长查询编码

标准通用代码如下:

$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视图:

$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

IN 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,因为它已经在不同的变量

如何使用和执行$ sq1 ?,sql2美元?

这个过程在PHP中是相同的- MySQL视图被客户端(PHP)视为一个常规表,因此查询它为

mysql_query("SELECT * FROM shipsummary");
// Or for whatever framework you're using:
$db->QueryArray("SELECT * FROM shipsummary"); 

应该能正常工作。如果它不能正常工作,你正在访问视图的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()不返回结果集,而只是执行一个语句,用它来创建视图。

现在,话虽如此…

除非视图的定义必须在每次执行此代码时更改,并且除非您有理由在每次脚本执行结束时执行DROP VIEW shipsummary,否则它会使far, far, far, far ....简单地在数据库中创建视图更有意义,它将永远保存在那里,而不是不断地用PHP重新创建它。视图一旦被创建,就不会被创建。

不要认为它们是临时的查询时间/代码节省器。在你的数据库中创建你需要的ONCE视图(使用PHPMyAdmin或mysql CLI,或者你创建的表),并用PHP访问它们。

为什么不直接发送呢

SELECT * FROM shipsummary

mysql查询,它应该工作,除非我不理解你的问题…