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

时间:2013-11-13 16:08:07

标签: php arrays function insert mysqli

即时测试在一个数据库中使用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'插入它们..

我该如何解决这个问题?

1 个答案:

答案 0 :(得分: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;
}
?>