Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何使用mysqli\u fetch\u数组从MySQL列获取数组_Php_Mysql_Sql_Arrays_Mysqli - Fatal编程技术网

Php 如何使用mysqli\u fetch\u数组从MySQL列获取数组

Php 如何使用mysqli\u fetch\u数组从MySQL列获取数组,php,mysql,sql,arrays,mysqli,Php,Mysql,Sql,Arrays,Mysqli,我正试图写一个IP禁令。用户IP存储在数据库中。我可以手动将该用户IP添加到banlist。不幸的是,下面的代码不起作用。我认为问题在于将数组从数据库中取出 $ip = $_SERVER['REMOTE_ADDR']; $bannedips = array(); $notBanned = true; //later used to check, if ip is banned $sql = "SELECT ip FROM ipban"; $result = mysqli_query($conn

我正试图写一个IP禁令。用户IP存储在数据库中。我可以手动将该用户IP添加到banlist。不幸的是,下面的代码不起作用。我认为问题在于将数组从数据库中取出

$ip = $_SERVER['REMOTE_ADDR'];
$bannedips = array();
$notBanned = true; //later used to check, if ip is banned

$sql = "SELECT ip FROM ipban";
$result = mysqli_query($conn, $result);
while($row = mysql_fetch_array($result, MYSQL_NUM)){
    $bannedips[] = $row;
}
if (in_array($ip, $bannedips)) {
    $notBanned = false;
}
只要改变一下:

while($row = mysql_fetch_array($result, MYSQL_NUM)){
    $bannedips[] = $row;
您不能将mysqli函数与mysql合并

$result = mysqli_query($conn, $result);
while($row = mysql_fetch_array($result, MYSQL_NUM)){
最后(编辑):

您可以在以下网址阅读更多内容:

只要改变一下:

while($row = mysql_fetch_array($result, MYSQL_NUM)){
    $bannedips[] = $row;
您不能将mysqli函数与mysql合并

$result = mysqli_query($conn, $result);
while($row = mysql_fetch_array($result, MYSQL_NUM)){
最后(编辑):

您可以在以下网址阅读更多内容:

只要改变一下:

while($row = mysql_fetch_array($result, MYSQL_NUM)){
    $bannedips[] = $row;
您不能将mysqli函数与mysql合并

$result = mysqli_query($conn, $result);
while($row = mysql_fetch_array($result, MYSQL_NUM)){
最后(编辑):

您可以在以下网址阅读更多内容:

只要改变一下:

while($row = mysql_fetch_array($result, MYSQL_NUM)){
    $bannedips[] = $row;
您不能将mysqli函数与mysql合并

$result = mysqli_query($conn, $result);
while($row = mysql_fetch_array($result, MYSQL_NUM)){
最后(编辑):

您可以在以下网址阅读更多内容:


问题在while循环中进行。在将数据附加到$bannedips数组时,您忘记了从$row数组中选择第0个(ip列)键

$row更改为row[0]如下所示:

while($row = mysql_fetch_array($result, MYSQL_NUM)){
    $bannedips[] = $row[0];
}

问题在while循环中进行。在将数据附加到$bannedips数组时,您忘记了从$row数组中选择第0个(ip列)键

$row更改为row[0]如下所示:

while($row = mysql_fetch_array($result, MYSQL_NUM)){
    $bannedips[] = $row[0];
}

问题在while循环中进行。在将数据附加到$bannedips数组时,您忘记了从$row数组中选择第0个(ip列)键

$row更改为row[0]如下所示:

while($row = mysql_fetch_array($result, MYSQL_NUM)){
    $bannedips[] = $row[0];
}

问题在while循环中进行。在将数据附加到$bannedips数组时,您忘记了从$row数组中选择第0个(ip列)键

$row更改为row[0]如下所示:

while($row = mysql_fetch_array($result, MYSQL_NUM)){
    $bannedips[] = $row[0];
}

由于性能原因,您不应该查询所有条目,而应该只搜索ip

$ip = $_SERVER['REMOTE_ADDR'];
$notBanned = true; //later used to check, if ip is banned

$sql = "SELECT ip FROM ipban WHERE ip = ?";
if ($stmt = mysqli_prepare($conn, $sql)) {
    /* bind parameters for markers */
    mysqli_stmt_bind_param($stmt, "s", $ip);

    if($result = mysqli_query($conn, $sql)){
        $notBanned = false;
        mysqli_free_result($result);
    }
}
面向对象的样式应为:

$mysqli = new mysqli(/* Whatever needed to establish connection */);
$ip = $_SERVER['REMOTE_ADDR'];
$notBanned = true; //later used to check, if ip is banned

$sql = "SELECT ip FROM ipban WHERE ip = ?";

if ($stmt = $mysqli->prepare($sql)){
    $stmt->bind_param("s", $ip);
    $stmt->execute();
    if($stmt && $stmt->num_rows > 0){
        $notBanned = false;
    }
}

由于性能原因,您不应该查询所有条目,而应该只搜索ip

$ip = $_SERVER['REMOTE_ADDR'];
$notBanned = true; //later used to check, if ip is banned

$sql = "SELECT ip FROM ipban WHERE ip = ?";
if ($stmt = mysqli_prepare($conn, $sql)) {
    /* bind parameters for markers */
    mysqli_stmt_bind_param($stmt, "s", $ip);

    if($result = mysqli_query($conn, $sql)){
        $notBanned = false;
        mysqli_free_result($result);
    }
}
面向对象的样式应为:

$mysqli = new mysqli(/* Whatever needed to establish connection */);
$ip = $_SERVER['REMOTE_ADDR'];
$notBanned = true; //later used to check, if ip is banned

$sql = "SELECT ip FROM ipban WHERE ip = ?";

if ($stmt = $mysqli->prepare($sql)){
    $stmt->bind_param("s", $ip);
    $stmt->execute();
    if($stmt && $stmt->num_rows > 0){
        $notBanned = false;
    }
}

由于性能原因,您不应该查询所有条目,而应该只搜索ip

$ip = $_SERVER['REMOTE_ADDR'];
$notBanned = true; //later used to check, if ip is banned

$sql = "SELECT ip FROM ipban WHERE ip = ?";
if ($stmt = mysqli_prepare($conn, $sql)) {
    /* bind parameters for markers */
    mysqli_stmt_bind_param($stmt, "s", $ip);

    if($result = mysqli_query($conn, $sql)){
        $notBanned = false;
        mysqli_free_result($result);
    }
}
面向对象的样式应为:

$mysqli = new mysqli(/* Whatever needed to establish connection */);
$ip = $_SERVER['REMOTE_ADDR'];
$notBanned = true; //later used to check, if ip is banned

$sql = "SELECT ip FROM ipban WHERE ip = ?";

if ($stmt = $mysqli->prepare($sql)){
    $stmt->bind_param("s", $ip);
    $stmt->execute();
    if($stmt && $stmt->num_rows > 0){
        $notBanned = false;
    }
}

由于性能原因,您不应该查询所有条目,而应该只搜索ip

$ip = $_SERVER['REMOTE_ADDR'];
$notBanned = true; //later used to check, if ip is banned

$sql = "SELECT ip FROM ipban WHERE ip = ?";
if ($stmt = mysqli_prepare($conn, $sql)) {
    /* bind parameters for markers */
    mysqli_stmt_bind_param($stmt, "s", $ip);

    if($result = mysqli_query($conn, $sql)){
        $notBanned = false;
        mysqli_free_result($result);
    }
}
面向对象的样式应为:

$mysqli = new mysqli(/* Whatever needed to establish connection */);
$ip = $_SERVER['REMOTE_ADDR'];
$notBanned = true; //later used to check, if ip is banned

$sql = "SELECT ip FROM ipban WHERE ip = ?";

if ($stmt = $mysqli->prepare($sql)){
    $stmt->bind_param("s", $ip);
    $stmt->execute();
    if($stmt && $stmt->num_rows > 0){
        $notBanned = false;
    }
}

$bannedips[]=$row['ip']
如果使用
MYSQL_NUM
-
$banndips[]=$row[0]
至少尝试打印变量以查看它们包含的内容。@SimonMathewson我根据您的要求编辑我的答案,请参见下面的
$banndips[]=$row['ip']
如果使用
MYSQL_NUM
-
$banndips[]=$row[0]
至少尝试打印变量以查看它们包含的内容。@SimonMathewson我根据您的要求编辑我的答案,请参见下面的
$banndips[]=$row['ip']
如果使用
MYSQL_NUM
-
$banndips[]=$row[0]
至少尝试打印变量以查看它们包含的内容。@SimonMathewson我根据您的要求编辑我的答案,请参见下面的
$banndips[]=$row['ip']
如果使用
MYSQL_NUM
-
$bannedips[]=$row[0]
至少尝试打印变量以查看它们包含的内容。@SimonMathewson我根据您的要求编辑我的答案,请参见下面的感谢!这看起来像是面向对象的mysqli吗?谢谢!这看起来像是面向对象的mysqli吗?谢谢!这看起来像是面向对象的mysqli吗?谢谢!这看起来像是面向对象的mysqli吗?还有其他错误:无法将mysqli函数与mysqli合并还有其他错误:无法将mysqli函数与mysqli合并还有其他错误:无法将mysqli函数与mysqli合并还有其他错误:无法将mysqli函数与mysql合并