通过php代码创建phpmyadmin数据库中的视图?

通过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。 我在本地运行此代码没有任何错误和错误。
如果可能?

+0

没有某些功能从服务器和我的电脑不同,例如在phpmyadmin的服务器不存在特权选项在菜单栏中,但是当在服务器上为我的数据库创建用户时,有很多设置权限的选项,比如创建视图,所以我很棒 –

+0

你的代码有像“maiaandi”和“bazemp”的字段,可能是某个表名,你在远程服务器中创建的数据库中有相同的表和字段? –

+0

我也是,谢谢@jeff,拼出我的问题。 –

卸下第一线的以下部分:

… ALGORITHM=UNDEFINED DEFINER=`root`@ SQL SECURITY DEFINER … 

也就是说,该声明应该开始作为简单:

CREATE VIEW `baz1amz1` as select… 

DEFINER=SQL SECURITY DEFINER的参数CREATE VIEW需要MySQL的超级特权,并且不影响此视图的行为。 (他们用于视图需要特殊权限的情况下,这似乎不是这里的情况。)

+0

你好,我暂停你的提到,但这个问题仍然存在,正如我认为可能事务没有在数据库中提交的那样,我复制了没有安全参数和过去的phpmyadmin的SQL语句中的代码,它的工作正常。运行后面会发生什么? –