Php 在mysql结果上运行if函数时出错
我试图在MySQL表中设置权限,但出现错误:Php 在mysql结果上运行if函数时出错,php,mysqli,Php,Mysqli,我试图在MySQL表中设置权限,但出现错误: Warning: mysqli::query() expects parameter 1 to be string, object given in /public/sites/staffpaneel.mc-wonderland.nl/index.php on line 656 Catchable fatal error: Object of class mysqli_result could not be converted to strin
Warning: mysqli::query() expects parameter 1 to be string, object given in
/public/sites/staffpaneel.mc-wonderland.nl/index.php on line 656
Catchable fatal error: Object of class mysqli_result could not be converted
to string in /public/sites/staffpaneel.mc-wonderland.nl/index.php on line 679
我已经尝试了很多方法,但都没有效果
<?php
//Perms
$PermissiesUitlezen = mysqli_query($conn, "SELECT * FROM `RankPermissies` WHERE RankID ° '".$sqlDataIngelogd['RankID']."'");
$sqlDataPermissies = mysqli_fetch_assoc($PermissiesUitlezen);
if ($conn->query($PermissiesUitlezen) === TRUE) {
if ($sqlDataPermissies['AccountMakenMag'] == 1) {
AccountMakenMag();
}
if ($sqlDataPermissies['AccountsMag'] == 1) {
AccountsMag();
}
if ($sqlDataPermissies['MeldingMakenMag'] == 1) {
MeldingMakenMag();
}
if ($sqlDataPermissies['RankAanmakenMag'] == 1) {
RankAanmakenMag();
}
if ($sqlDataPermissies['RanksMag'] == 1) {
RanksMag();
}
if ($sqlDataPermissies['StoringMakenMag'] == 1) {
StoringMakenMag();
}
if ($sqlDataPermissies['StoringenMag'] == 1) {
StoringenMag();
}
} else {
echo "Fout: " . $PermissiesUitlezen . "<br>" . $conn->error;
}
?>
您可以从 SELECT * FROM `RankPermissies` WHERE RankID ° '".$sqlDataIngelogd['RankID']."' 从“RankPermissies`WHERE RankID°”中选择*。“$sqlDataIngelogd['RankID']” 到 从'RankPermissies'中选择*其中RankID='“$sqlDataIngelogd['RankID']”
然后检查。问题在于
$permissiesuitelizen
保存mysqli\u query()
调用的结果,并且在if
中,您将其用作另一个mysqli\u query()调用的参数。这没有任何意义
实际上,如果您阅读了php.net上的手册,您将知道如何正确检查错误:
if ($PermissiesUitlezen = mysqli_query($conn, "SELECT * FROM `RankPermissies` WHERE RankID = '".$sqlDataIngelogd['RankID']."'")) {
$sqlDataPermissies = mysqli_fetch_assoc($PermissiesUitlezen);
...
注意,我还更正了sql语句(将°
替换为=
。但请注意,如果sql查询中有参数,则应使用准备好的语句。警告:使用mysqli
时,应使用和将用户数据添加到查询中。不要使用字符串插值或连接来完成此操作,因为您已创建了服务器不要将$\u POST
、$\u GET
或任何用户数据直接放入查询中,如果有人试图利用您的错误,这可能是非常有害的。php和mysqli会准确地告诉您在这种特殊情况下的错误……注意:mysqli
的面向对象接口明显不那么冗长,使代码更易于阅读d审计,并且不容易与过时的mysql\u查询接口混淆。在您对过程式风格投入太多之前,它值得切换。例如:$db=new mysqli(…)
和$db->prepare(“…”)
我现在有:`$sqlRankIngelogdPerms=$sqlDataIngelogd['RankID']$PermissiesUitlezen=mysqli_query($conn,“SELECT*FROMrankpermises
WHERE RankID=”“$sqlRankIngelogdPerms.”)。
if ($PermissiesUitlezen = mysqli_query($conn, "SELECT * FROM `RankPermissies` WHERE RankID = '".$sqlDataIngelogd['RankID']."'")) {
$sqlDataPermissies = mysqli_fetch_assoc($PermissiesUitlezen);
...