2014-01-13 64 views
0

我要發佈到我的localhosted MySQL數據庫中的表,但是當我運行該腳本的頁面保持白色,但沒有發佈在表中。我將添加我的代碼以進行澄清。我使用USBWebserver來託管apache和MySQL服務器。PHP沒有插入MySQL分區

<?php 
//connectie leggen met input data 
//$con = 

//variablen input invullen (bijv $gebruikeragenda = $_POST['gebruikeragenda']; 
$gebruikeragenda = 'Testafspraak'; //hierin specifieren op welke account dit evenement geplaatst moet worden 
$tegebruikenagenda = ''; //hierin specifieren we de agenda waarin het evenement geplaatst moet worden 
$begintijd = '2014-01-13 15:30:00';   //begintijd specifieren 
$eindtijd = '2014-01-13 16:30:00';   //eindtijd specifieren 
$medeaanwezige = '';  //emailadressen van andere aanwezige tijdens dit evenement 

//connectie leggen met MySQL(aanpasbaarnaar SQLite indien nodig) 
$con=mysqli_connect("localhost:3307","root","usbw","baikal"); 
// Check connection 
if (mysqli_connect_errno()) 
    { 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
    } 

//input van hierboven ombouwen en in de database van Baikal bouwen 
$calendardata = $gebruikeragenda;      
$uri = 'default'; 
$lastmodified = $begintijd;  //laatst gemodificeerd 
$calenderid = '1';    //het id van de agenda waarbij de event hoort 
$etag = 'niks'; 
$size = '200';      //grootte 
$componenttype = '';   //wordt er gebruik gemaakt van een notificatie, voer hier dan VTODO in 
$firstoccurence = $begintijd; //begintijd van evenement 
$lastoccurence = $eindtijd;  //eindtijd van evenement 

//gegevens in de database plaatsen 
mysqli_query($con,"INSERT INTO calendarobjects (calendardata, uri, calendarid, lastmodified, etag, size, componenttype, firstoccurence, lastoccurence) VALUES (".$calendardata.", ".$uri.", 
".$lastmodified.",".$etag.",".$size.",".$componenttype.",".$firstoccurence.",".$lastoccurence.")"); 
mysqli_close($con); 
+2

將字符串值換成引號....或者甚至更好地切換到帶有綁定變量的MySQLi/PDO準備語句 –

+1

字符串值需要用引號引起來。我也建議你使用預先準備的語句。 – ajtrichards

+4

9 colums,8 values.They必須匹配。 – Mihai

回答

2

你的列值不匹配。您正試圖將8個值插入9列。

具體而言,它似乎你缺少一個calendarid

其次,您的字符串需要用引號括起來。

最後,您很容易受到SQL注入的影響。考慮使用prepared聲明。

+0

它只是爲了本地使用,所以無關緊要,謝謝! – joostmakaay

+0

寫入的代碼不容易被注入,因爲他所有的變量都是硬編碼的。 – thelr

+1

@thelr,你提出一個有效的觀點。我認爲這些僅僅是爲了發佈問題而編寫的。 – Andy

0

你必須來包裝你的字符串的單或雙引號,並保持一定,則params的數量相匹配值的數量。(calendarid缺少..)

mysqli_query($con,"INSERT INTO calendarobjects 
    (calendardata, uri, calendarid, lastmodified, etag, size, componenttype, firstoccurence, lastoccurence) 
    VALUES 
    ('$calendardata', '$uri', 'missing calendarid', '$lastmodified', '$etag','$size','$componenttype','$firstoccurence','$lastoccurence')"); 
mysqli_close($con); 

順便說一句..你的代碼很容易被SQL注入,所以你必須使用real_escape_string(link)或更好的prepared statements

0

您需要使用報價值。

您有9個屬性和8個值。你已經在你的query.Set在查詢中漏掉了一個值的另一個值和 試試這個:

<?php 
    //connectie leggen met input data 
    //$con = 

    //variablen input invullen (bijv $gebruikeragenda = $_POST['gebruikeragenda']; 
    $gebruikeragenda = 'Testafspraak'; //hierin specifieren op welke account dit evenement geplaatst moet worden 
    $tegebruikenagenda = ''; //hierin specifieren we de agenda waarin het evenement geplaatst moet worden 
    $begintijd = '2014-01-13 15:30:00';   //begintijd specifieren 
    $eindtijd = '2014-01-13 16:30:00';   //eindtijd specifieren 
    $medeaanwezige = '';  //emailadressen van andere aanwezige tijdens dit evenement 

    //connectie leggen met MySQL(aanpasbaarnaar SQLite indien nodig) 
    $con=mysqli_connect("localhost:3307","root","usbw","baikal"); 
    // Check connection 
    if (mysqli_connect_errno()) 
    { 
     echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
    } 

    //input van hierboven ombouwen en in de database van Baikal bouwen 
    $calendardata = $gebruikeragenda; 
    $uri = 'default'; 
    $lastmodified = $begintijd;  //laatst gemodificeerd 
    $calenderid = '1';    //het id van de agenda waarbij de event hoort 
    $etag = 'niks'; 
    $size = '200';      //grootte 
    $componenttype = '';   //wordt er gebruik gemaakt van een notificatie, voer hier dan VTODO in 
    $firstoccurence = $begintijd; //begintijd van evenement 
    $lastoccurence = $eindtijd;  //eindtijd van evenement 
    $sql = "INSERT INTO calendarobjects (calendardata, uri, calendarid, lastmodified, etag, size, componenttype, firstoccurence, lastoccurence) VALUES ('$calendardata', '$uri', 
    '$lastmodified','$etag','$size','$componenttype','$firstoccurence','$lastoccurence')"; 
    //gegevens in de database plaatsen 
    if(mysqli_query($con,$sql)){ 
    echo "successully inserted"; 
    }else{ 
    echo "something wrong"; 
    } 
    mysqli_close($con);