需要一些启发,这是我在这里的第一篇文章。
我想调用和使用我以前创建的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查询,它应该工作,除非我不理解你的问题…