即时测试在一个数据库中使用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'插入它们..
我该如何解决这个问题?
答案 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;
}
?>