Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.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插入不工作_Php_Mysql_Insert - Fatal编程技术网

PHP插入不工作

PHP插入不工作,php,mysql,insert,Php,Mysql,Insert,这段代码以前适用于我,但现在,它没有将数据插入我的数据库。当我执行它时,它接收到一条消息($mensaje),然后连接到数据库,然后尝试插入数据,但它不能这样做 $conn = mysqli_connect('127.0.0.1', 'user', 'pass', 'mydb'); if(mysqli_connect_errno($conn)) { echo "<script>alert('Error en la conexión');</scr

这段代码以前适用于我,但现在,它没有将数据插入我的数据库。当我执行它时,它接收到一条消息($mensaje),然后连接到数据库,然后尝试插入数据,但它不能这样做

$conn = mysqli_connect('127.0.0.1', 'user', 'pass', 'mydb');
    if(mysqli_connect_errno($conn))
    {
        echo "<script>alert('Error en la conexión');</script>";  
    }

    else
    {
        echo "<script>alert('Conectado a la base de datos');</script>";
        $sql = "INSERT INTO conversacion (mensaje, idUsuario, leido) VALUES ('$mensaje', NULL, FALSE)";
        if(mysqli_query($conn, $sql))
        {
            echo "<script>alert('Datos introducidos correctamente');</script>";
        }

        else
        {
            echo "<script>alert('Error en la introduccion de datos');</script>";
        }
        mysqli_close($conn);
    }
$conn=mysqli_connect('127.0.0.1','user','pass','mydb');
if(mysqli\u connect\u errno($conn))
{
回音“警报(‘conexión’错误’);”;
}
其他的
{
回声“警报('Conectado a la base de datos');”;
$sql=“插入conversacion(mensaje、idUsuario、leido)值(“$mensaje”,NULL,FALSE)”;
if(mysqli_查询($conn,$sql))
{
echo“警报('Datos Introcidos correctamente');”;
}
其他的
{
回声“警报(‘数据导入错误’);”;
}
mysqli_close($conn);
}

由于您已将整个sql设置为字符串,因此需要如下使用:

$sql = "INSERT INTO conversacion (mensaje, idUsuario, leido) VALUES ('$mensaje', 'NULL', 'FALSE')";
$sql = "INSERT INTO play (id, type, periodId) VALUES ('$mensaje',".NULL.",". FALSE.")";
$mensaje=10;$n=NULL;$flag=true;// here $flag=false will give '' in the sql.
  $sql = "INSERT INTO play (id, type, periodId) VALUES ('$mensaje','$n','$flag')";
INSERT INTO play (id, type, periodId) VALUES ('10','','1')
如果你想让它像这样:

$sql = "INSERT INTO conversacion (mensaje, idUsuario, leido) VALUES ('$mensaje', 'NULL', 'FALSE')";
$sql = "INSERT INTO play (id, type, periodId) VALUES ('$mensaje',".NULL.",". FALSE.")";
$mensaje=10;$n=NULL;$flag=true;// here $flag=false will give '' in the sql.
  $sql = "INSERT INTO play (id, type, periodId) VALUES ('$mensaje','$n','$flag')";
INSERT INTO play (id, type, periodId) VALUES ('10','','1')
然后它将结束如下:

INSERT INTO play (id, type, periodId) VALUES ('10',,) // here $mensaje=10 an example a **wrong sql**
所以最好这样做:

$sql = "INSERT INTO conversacion (mensaje, idUsuario, leido) VALUES ('$mensaje', 'NULL', 'FALSE')";
$sql = "INSERT INTO play (id, type, periodId) VALUES ('$mensaje',".NULL.",". FALSE.")";
$mensaje=10;$n=NULL;$flag=true;// here $flag=false will give '' in the sql.
  $sql = "INSERT INTO play (id, type, periodId) VALUES ('$mensaje','$n','$flag')";
INSERT INTO play (id, type, periodId) VALUES ('10','','1')
这将产生类似这样的结果:

$sql = "INSERT INTO conversacion (mensaje, idUsuario, leido) VALUES ('$mensaje', 'NULL', 'FALSE')";
$sql = "INSERT INTO play (id, type, periodId) VALUES ('$mensaje',".NULL.",". FALSE.")";
$mensaje=10;$n=NULL;$flag=true;// here $flag=false will give '' in the sql.
  $sql = "INSERT INTO play (id, type, periodId) VALUES ('$mensaje','$n','$flag')";
INSERT INTO play (id, type, periodId) VALUES ('10','','1')

它有什么作用?您是否收到错误或插入没有发生?它执行else“echo”(错误代码)而不执行插入,因此,我假设查询结果为FALSE。请更改代码,以便查看数据库返回的错误。是否尝试在mysqli客户端上执行sql查询以查看结果?插入的数据有问题。“usuarios”表中不存在insert查询中的“idUsuario”。由于您试图为idUsuario传递NULL,您是否检查了该表是否允许NULL值?否则它将被转换为0,这不是一个有效的id。实际上这不是查询的问题,只是我对DB做了一些错误,因为它返回了一个外键和约束的错误,但是我不知道为什么外键的记录应该在父表中可用。另外,我还要看看您是否对idUsuario设置了一些约束。