Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.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
无法从使用WAMP的php脚本插入数据库_Php_Mysql - Fatal编程技术网

无法从使用WAMP的php脚本插入数据库

无法从使用WAMP的php脚本插入数据库,php,mysql,Php,Mysql,我正在尝试从php脚本将数据插入MySQL数据库。我正在使用WAMP。当通过phpmyadmin插入数据时,一切正常,数据也可以显示在网页上,但当试图通过php脚本手动插入数据时,什么都没有发生(我这样做是为了测试,我的目标是从Arduino将数据加载到服务器)。代码如下: <?php $link=mysqli_connect("localhost", "root", "", "database"); if (mysqli_connect_errno()) {

我正在尝试从php脚本将数据插入MySQL数据库。我正在使用WAMP。当通过phpmyadmin插入数据时,一切正常,数据也可以显示在网页上,但当试图通过php脚本手动插入数据时,什么都没有发生(我这样做是为了测试,我的目标是从Arduino将数据加载到服务器)。代码如下:

<?php

    $link=mysqli_connect("localhost", "root", "", "database");

    if (mysqli_connect_errno()) {
     printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
    }

    $temp="";
    $hum="";
    if(isset($_POST["temp1"])){ $temp = $_POST["temp1"];}
    if(isset($_POST["hum1"])){ $hum = $_POST["hum1"];}

    $safetemp1= mysqli_real_escape_string($link, $temp);
    $safehum1= mysqli_real_escape_string($link, $hum); 

    $query = "INSERT INTO tempLog (temperature, humidity) 
     VALUES (10, 10)";

    $result = mysqli_query($link,$query);
    if (!$result) {
       die("Nothing was inserted, something went wrong.");
    }
    mysqli_close($link);
    header("Location: indexx.php")

试试看是否有错误,可能是您拼错了行或表名

echo(“错误描述:.mysqli_错误($link))


我看不出这怎么会失败。但是,我会检查您的HTML表单,在我看来,这似乎是您不显示的最可能的原因和代码。但是,请确保这些列是int而不是varchar。我也不知道为什么要使用POST数组,但使用10作为值。检查错误将确定这一点,而您没有这样做。您的
标题(“Location:indexx.php”)也缺少一个分号。
您的php环境是否设置为显示错误?你检查过你的错误日志了吗?当运行代码时,结果是“没有插入任何内容,有问题”。这里。。。在打开PHP标记后立即将错误报告添加到文件顶部,例如
尝试打印$query变量并从phpMyAdmin执行它。这行吗?评论中已经提到了错误检查。这更像是开门见山地回答。我知道这个问题。我的第一列是timestamp,它记录了插入数据的实时时间,所以我不知道为什么只显示零。同样,它是自动递增的,所以我认为如果我没有在查询中包含它也没关系phpmyadmin@MoloiMokete您可以将该字段的默认值(使用PhpMyAdmin)设置为“更新当前\u时间戳”,或者您可以向时间戳字段传递一个函数以放置当前时间<代码>插入tempLog(时间戳、温度、湿度)值(现在()、10、10)
。我建议设置默认值,这样您就不必担心每次都通过
NOW()
。关于自动递增字段,您是正确的,无需将其放入插入查询。@Lin Meyer我尝试了这两种解决方案,它们都很好。感谢所有花时间帮助我的人。下次是Cheeeers。
$link=mysqli_connect("localhost", "root", "", "database");

if (mysqli_connect_errno()) {
 printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}

$temp="";
$hum="";
if(isset($_POST["temp1"])){ $temp = $_POST["temp1"];}
if(isset($_POST["hum1"])){ $hum = $_POST["hum1"];}

$safetemp1= mysqli_real_escape_string($link, $temp);
$safehum1= mysqli_real_escape_string($link, $hum); 

$query = "INSERT INTO tempLog (temperature, humidity) 
 VALUES (10, 10)";

$result = mysqli_query($link,$query);
if (!$result) {
   echo("Error description: " . mysqli_error($link));
   die("Nothing was inserted, something went wrong.");
}
mysqli_close($link);
header("Location: indexx.php")