在数据库 mysql 中插入函数 php 的值


Insert values from function php in database mysql

im 测试将 al ip 从用 PHP 中的一个函数创建的数组中插入一个数据库。

我有这个代码:

<?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"。

我该如何解决这个问题?

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

<?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;
}
?>