尝试mysqli转义字符串时出现多个错误

时间:2017-07-07 22:43:30

标签: php mysqli

我目前的代码是

<?php
//Perms
$sqlUitlezenIngelogdPerms = mysqli_query($conn, "SELECT * FROM `StaffLeden` WHERE `GebruikersID` = '".$_SESSION['Ingelogd']."'");
$sqlDataIngelogdPermissies = mysqli_fetch_assoc($sqlUitlezenIngelogdPerms);

$PermissiesUitlezen = mysqli_query($conn, "SELECT * FROM `RankPermissies` WHERE RankID = '".mysqli_escape_string($sqlDataIngelogdPermissies['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;
}
?>

我正在尝试读取带有结果的结果。但是我收到了这些错误:

  

警告:mysqli_escape_string()只需要2个参数,给定1个   在/public/sites/staffpaneel.mc-wonderland.nl/index.php第656行

     

警告:mysqli :: query()期望参数1为str​​ing,object   在/public/sites/staffpaneel.mc-wonderland.nl/index.php中给出   659

     

可捕获的致命错误:类mysqli_result的对象不可能   转换为字符串   第682行/public/sites/staffpaneel.mc-wonderland.nl/index.php

有人知道如何解决这个问题吗?我尝试了很多东西,但没有任何作用。

1 个答案:

答案 0 :(得分:0)

将您的连接作为第一个参数传递到此处:

mysqli_escape_string($conn, $sqlDataIngelogdPermissies['RankID'])

关于第二个错误:$conn->query()期望SQL查询字符串作为第一个参数,但是您提供的是您之前使用mysqli_query()创建的另一个查询对象,您也在某种程度上混合过程和对象 - 这里有风格。为了保持一致性,您应该使用其中一种。

固定代码段:

$query = "SELECT * FROM `RankPermissies` WHERE RankID = '".mysqli_escape_string($conn, $sqlDataIngelogdPermissies['RankID'])."'";
$PermissiesUitlezen = mysqli_query($conn, $query)
$sqlDataPermissies = mysqli_fetch_assoc($PermissiesUitlezen);

if ($PermissiesUitlezen === TRUE) {
  //...
}