2017-02-10 126 views
-1

我在嘗試從html表單插入數據時收到此錯誤。將數據插入SQL表時出錯

Error: INSERT INTO uren (aantaluren, projectname, datum) VALUES ('6','dropdown','2017-02-10' 
You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line 2 

這是我的,我想在添加數據的頁面代碼:

<?php 
session_start(); 
require_once(dirname(__FILE__)."/simpleusers/su.inc.php"); 

$mysqli = mysqli_connect("localhost","root","","urenregistratie"); 
$sqlSelect="SELECT name, projectId FROM projecten"; 
$result = $mysqli -> query ($sqlSelect); 

while ($row = mysqli_fetch_array($result)) { 
echo "option value='" . $row['name'] . "'>" . $row['projectId'] . "</option>"; 
} 

$SimpleUsers = new SimpleUsers(); 

// This is a simple way of validating if a user is logged in or not. 
// If the user is logged in, the value is (bool)true - otherwise (bool)false. 
if(!$SimpleUsers->logged_in) 
{ 
    header("Location: login.php"); 
    exit; 
} 

// If the user is logged in, we can safely proceed. 
$users = $SimpleUsers->getUsers(); 


if ($mysqli->connect_error) { 
die("Connection failed: ". $mysqli->connect_error); 
} 

if(isset($_POST['new']) && $_POST['new']==1) 
{ 

$aantaluren =$_REQUEST['aantaluren']; 
$datum =$_REQUEST['datum']; 
$projectname = $_REQUEST['projectname']; 

$sql = "INSERT INTO uren (aantaluren, projectname, datum) 
VALUES ('$aantaluren','$projectname','$datum'"; 

if ($mysqli->query($sql) === TRUE) { 
    echo "Uren succesvol toegevoegd. <a href='overzicht.php'> Bekijk  overzicht</a>"; 
} else { 
    echo "Error: " . $sql . "<br>" . $mysqli->error; 
}} 


?> 


<!DOCTYPE html> 
<html> 
<head> 
    <title>Toevoegen</title> 
    <link rel="stylesheet" href="style.css"> 
    </head> 
    <body> 
     <div class="form"> 
      <p> 
       <a href="dashboard.php">Dashboard</a> | <a href="view.php">Projecten inzien</a> | <a href="logout.php">Loguit</a> 
      </p> 

      <div> 
       <h1>Voeg uren toe</h1> 

       <form action="uren.php" method="post"> 
        <input type="hidden" name="new" value="1" /> 
        <p>Aantal uren</p><p> 
         <input name="aantaluren" type="number" min=1 max=24> 
         </p> 
         <select name="projectname"/> 

         <?php 
        $sql = mysqli_query($mysqli, "SELECT name FROM projecten"); 
        while ($row = $sql->fetch_assoc()){ 
         echo "<option value=\"dropdown\">" . $row['name'] . "</option>"; 
         } 
        ?> 

        </select> 
        <p>Datum</p> 
        <p> 
         <input type="date" name="datum" placeholder="datum" required /> 
        </p> 
        <p> 
         <input name="submit" type="submit" value="Voeg toe" /> 
        </p> 
       </form> 

      </div> 
     </div> 
    </body> 
</html> 

這些都是我的SQL表:

CREATE DATABASE IF NOT EXISTS urenregistratie; 

CREATE TABLE IF NOT EXISTS urenregistratie.`users` (
    `userId` int(11) NOT NULL auto_increment, 
    `uUsername` varchar(128) NOT NULL, 
    `uPassword` varchar(40) NOT NULL, 
    `uSalt` varchar(128) NOT NULL, 
    `uActivity` datetime NOT NULL, 
    `uCreated` datetime NOT NULL, 
    PRIMARY KEY (`userId`), 
    UNIQUE KEY `uUsername` (`uUsername`) 
    ) ENGINE=MyISAM AUTO_INCREMENT=1 ; 

CREATE TABLE IF NOT EXISTS urenregistratie.`users_information` (
    `userId` int(11) NOT NULL, 
    `infoKey` varchar(128) NOT NULL, 
    `InfoValue` text NOT NULL, 
    KEY `userId` (`userId`) 
) ENGINE=MyISAM; 

CREATE TABLE IF NOT EXISTS urenregistratie.`projecten`(
    `projectId` int(11) NOT NULL AUTO_INCREMENT, 
    `trn_date` datetime NOT NULL, 
    `name` varchar(50) NOT NULL, 
    `begindatum` datetime NOT NULL, 
    `einddatum` datetime NOT NULL, 
    PRIMARY KEY (`projectId`) 
    ); 

CREATE TABLE IF NOT EXISTS urenregistratie.`uren`(
    projectname varchar(50), 
    aantaluren int(11) NOT NULL, 
    datum datetime NOT NULL, 
    PRIMARY KEY (projectname) 
    ) 

我一直停留在這大約2天了,我似乎無法弄清楚爲什麼它不起作用。請幫助

回答

1

您忘記關閉插入語句中的括號。完成。

正確的格式:

INSERT INTO uren()VALUES()

+0

謝謝這麼多,它最終將它添加到數據庫。現在我發現了另一個問題。我在那裏有一個下拉菜單,但是當我選擇一些內容時,它總是在下拉菜單中添加名稱「Dropdown」而不是選定的選項。你知道這個問題是什麼嗎? –

+0

這聽起來像您需要將下拉列表中的值更改爲指定的字符串:例如。 value =「exampleString」 – JordanH

+0

@ErikVenema在'value'屬性中給出行的值,或者移除'value'屬性,因爲顯示的值將默認添加'echo「」;' – affaz

0

你沒有關閉托架

$sql = "INSERT INTO uren (aantaluren, projectname, datum) 
VALUES ('$aantaluren','$projectname','$datum')"; 

它在你的錯誤說,它的語法錯誤