0

我正在测试从使用 php 中的一个函数创建的数组中插入 al ip,在一个数据库中..

我有这个代码:

<?php

//Funcion IP
$range='192.168.3.0/24';

function rango($range){
    $parts = explode('/',$range);
    $exponent = 32-$parts[1].'-';
    $count = pow(2,$exponent);
    $start = ip2long($parts[0]);
    $end = $start+$count;
    return array_map('long2ip', range($start+1, $end-2) );
}



//Conexion a la Base de datos
$mysqli = new mysqli("localhost", "root", "", "ips");
if ($mysqli->connect_errno) {
    echo "Falló la conexión con MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}

//Elimina la tabla si existe
if (!$mysqli->query("DROP TABLE IF EXISTS prueba3") ||
    //Crea la tabla
    !$mysqli->query("CREATE TABLE prueba3(ip VARCHAR(30), estado VARCHAR(30))") ||
    //Inserta valores en la tabla

    foreach((rango($range)) as $i)
    {
        !$mysqli->query("INSERT INTO prueba3 (ip, estado) VALUES (". $i .", 'Libre')");
    }

    /*!$mysqli->query("INSERT INTO prueba3(ip, estado) VALUES ('192.168.3.1', 'Libre')")) { */
    //Si falla la creacion de la tabla
    echo "Falló la creación de la tabla: (" . $mysqli->errno . ") " . $mysqli->error;
}
?>

我需要从该数组中插入每个值,我不知道如何..问题是'if'中的'foreach'插入它们..

我该如何解决这个问题?

4

1 回答 1

0

我仍然不知道您为什么每次都删除表格,但是您可以尝试使用此代码,它可以满足您的需要顺便说一句您在值周围缺少引号,它是一个字符串,因此确实需要用引号括起来

<?php

//Funcion IP
$range='192.168.3.0/24';

function rango($range){
    $parts = explode('/',$range);
    $exponent = 32-$parts[1].'-';
    $count = pow(2,$exponent);
    $start = ip2long($parts[0]);
    $end = $start+$count;
    return array_map('long2ip', range($start+1, $end-2) );
}



//Conexion a la Base de datos
$mysqli = new mysqli("localhost", "root", "MYSQL123", "ips");
if ($mysqli->connect_errno) {
    echo "Falló la conexión con MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}

//Elimina la tabla si existe
if ($mysqli->query("DROP TABLE IF EXISTS prueba3") AND $mysqli->query("CREATE TABLE prueba3(ip VARCHAR(30), estado VARCHAR(30))")){
    //Inserta valores en la tabla

    foreach((rango($range)) as $i)
    {
      $query = $mysqli->query("INSERT INTO prueba3 (ip, estado) VALUES ('". $i ."', 'Libre')");
        if($query){
          echo "Inserted " . $i . "<br/>";
        }else{
          echo "error ...(" . $mysqli->errno . ") " . $mysqli->error . "<br />";
        }
    }

    /*!$mysqli->query("INSERT INTO prueba3(ip, estado) VALUES ('192.168.3.1', 'Libre')")) { */
    //Si falla la creacion de la tabla

}else{
  echo "Falló la creación de la tabla: (" . $mysqli->errno . ") " . $mysqli->error;
}
?>
于 2013-11-13T16:25:49.240 回答