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

时间:2016-12-16 21:58:51

标签: php mysqli

我编写了SQL代码来创建在MySQL中创建视图。本地或我的计算机上的此代码可正常工作,但在远程服务器上运行时,它无法正常工作。

当我复制此代码并将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>';
}

所以我希望如果发生任何错误,在else块运行中的表彰和baz1amz1在页面上显示为我的指南。我想这个视图运行,但它没有在DB中提交,也许事务执行没有任何问题,最后当它想要在DB中提交时,没有足够的权限,从php到MySQL。 我在本地运行此代码没有任何错误和错误 如果可能的话?

1 个答案:

答案 0 :(得分:0)

删除第一行的以下部分:

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

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

CREATE VIEW `baz1amz1` as select…

DEFINER=的{​​{1}}和SQL SECURITY DEFINER参数需要MySQL SUPER权限,并且不会影响此视图的行为。 (它们用于视图需要特殊权限的情况,这在这里似乎不是这种情况。)