通过php代码创建phpmyadmin数据库中的视图?
我编写了SQL代码来创建在MySQL中创建视图。此代码在本地或我的计算机上正常工作,但在远程服务器上运行时不起作用。通过php代码创建phpmyadmin数据库中的视图?
当我复制此代码并粘贴到服务器上的PhpMyadmin的SQL位置它的行为以及没有任何问题。我没有更改任何代码段,只从php复制,然后通过phpmyadmin。
这个php事务的后台发生什么事,在服务器的网页上不起作用?我的看法
全部分:
$conn2 = new mysqli($servername, $username, $password,$dbname);
$view_baz1maz1="CREATE ALGORITHM=UNDEFINED DEFINER=`root`@ SQL SECURITY
DEFINER VIEW `baz1amz1` as select `regvezarat`.`bazemp`.`PrsID` AS `PrsID`,
`regvezarat`.`bazemp`.`Name` AS `Name`,`regvezarat`.`bazemp`.`Family` AS `Family`,
,`regvezarat`.`bazemp`.`AccID` AS `AccID` from `regvezarat`.`bazemp`
union select
`regvezarat`.`infemp`.`PrsID` AS `PrsID`,`regvezarat`.`infemp`.`Name` AS `Name`,
`regvezarat`.`infemp`.`Family` AS `Family`,`regvezarat`.`infemp`.`FtName` AS `FtName`,
regvezarat`.`infemp`.`NumID` AS `NumID`,`regvezarat`.`infemp`.`AccID` AS `AccID` from
`regvezarat`.`infemp`;";
if(mysqli_query($conn2,$view_baz1maz1))
{
$num_win+=1;
}
else
{
mysqli_error($conn2);
$num_fail+=1;
echo "baz1amz1".'<br>';
}
因此,我希望如果出现任何错误,在其他模块运行,并baz1amz1的赞扬显示引导我页面上。我猜这个视图运行,但它没有在数据库中提交,也许交易没有任何问题执行,最终当它想在数据库中提交时,没有足够的权限,从PHP到MySQL。 我在本地运行此代码没有任何错误和错误。
如果可能?
卸下第一线的以下部分:
… ALGORITHM=UNDEFINED DEFINER=`root`@ SQL SECURITY DEFINER …
也就是说,该声明应该开始作为简单:
CREATE VIEW `baz1amz1` as select…
的DEFINER=
和SQL SECURITY DEFINER
的参数CREATE VIEW
需要MySQL的超级特权,并且不影响此视图的行为。 (他们用于视图需要特殊权限的情况下,这似乎不是这里的情况。)
你好,我暂停你的提到,但这个问题仍然存在,正如我认为可能事务没有在数据库中提交的那样,我复制了没有安全参数和过去的phpmyadmin的SQL语句中的代码,它的工作正常。运行后面会发生什么? –
没有某些功能从服务器和我的电脑不同,例如在phpmyadmin的服务器不存在特权选项在菜单栏中,但是当在服务器上为我的数据库创建用户时,有很多设置权限的选项,比如创建视图,所以我很棒 –
你的代码有像“maiaandi”和“bazemp”的字段,可能是某个表名,你在远程服务器中创建的数据库中有相同的表和字段? –
我也是,谢谢@jeff,拼出我的问题。 –