使用PHP向数据库添加数据时出错

时间:2014-04-25 10:41:02

标签: php mysqli

我必须创建一个Web应用程序,从我的数据库中获取信息,从API获取其信息)。然后我必须在特定条件下显示项目。

但是当我尝试从API添加数据时,我收到了一条奇怪的消息:

Notice: Trying to get property of non-object in c:\xampp\htdocs\IMP03\inleveropdracht3\libs\php\function.php on line 21
Warning: Invalid argument supplied for foreach() in C:\xampp\htdocs\IMP03\inleveropdracht3\libs\php\function.php on line 21

这是我的PHP代码:

<?php

require_once 'settings.php';
$mysqli = mysqli_connect($db_host, $db_user, $db_password, $db_database);
if (mysqli_connect_error()) {
    echo mysqli_connect_error($mysqli) . "We are not able to connect to the online database";
}
jsondecode($mysqli);
if (isset($_GET['club']) && !empty($_GET['club'])) {
    jsondecode($mysqli);
} else if (isset($_GET['thuisPoint']) && !empty($_GET['thuisPoint']) && ($_GET['uitPoint']) && ($_GET['uitPoint'])) {
    updatePoints($mysqli);
} else {
    getWedstrijd($mysqli);
}

function jsondecode($mysqli) {
    $apiLink = 'http://docent.cmi.hr.nl/moora/imp03/api/wedstrijden?club=';
//    $club = $_GET['club'];
    $data = json_decode(file_get_contents($apiLink . "Ajax"));
    foreach ($data->data as $info) {
        $thuisClub = $info->homeClub;
        $uitClub = $info->awayClub;
        addWestrijden($mysqli, $thuisClub, $uitClub);
    }
}

//querys
function addWestrijden($mysqli, $thuisClub, $uitClub) {
    $query = "INSERT INTO wedstrijd VALUES(null, '$thuisClub', '$uitClub')";
    $resultAddWedstrijd = mysqli_query($mysqli, $query) or die(mysqli_error($mysqli));
    getWedstrijd($mysqli);
}

function getWedstrijd($mysqli) {
    $query = "SELECT * FROM wedstrijd ORDER BY thuisClub DESC";
    $resultGetWedstijd = mysqli_query($mysqli, $query) or die(mysqli_error($mysqli));
    while ($result = mysqli_fetch_assoc($resultGetWedstijd)) {
        $rows [] = $result;
    }
    header("Content-Type: application/json");
    echo json_encode($rows);
    exit;
}

function updatePoints($mysqli) {
    $id = $_GET['id'];
    $thuisPoints = $_GET['thuisPoint'];
    $uitPoints = $_GET['uitPoint'];
    $query = "UPDATE wedstrijd "
            . "SET thuisPunt = '$thuisPoints', uitPunt = '$uitPoints') "
            . "WHERE id = '$id'";
    mysqli_query($mysqli, $query) or die(mysqli_error($mysqli));
    getWedstrijd($mysqli);
}

我做了一点修改,所以它会从API中添加数据。如果有人能帮助我,我真的很感激。

1 个答案:

答案 0 :(得分:0)

将您的foreach更改为:

foreach ($data as $data => $info)