2014-02-09 107 views
0

我的PDO查詢不起作用。這是我的頁面:PDO插入查詢不起作用

<!DOCTYPE html> 
<html lang="en"> 
    <head> 
    <meta charset="utf-8"> 
    <meta name="viewport" content="width=device-width, initial-scale=1.0"> 
    <meta name="description" content="Rally is our passion"> 
    <meta name="author" content="Robin Rosiers"> 

    <title>Sponsors - RPR Admin</title> 

    <?php require_once ('include/core.php'); ?> 

    <!-- Bootstrap core CSS --> 
    <link href="css/bootstrap.css" rel="stylesheet"> 
    <link rel="shortcut icon" href="./img/favicon.ico"> 

    <!-- Add custom CSS here --> 
    <link href="css/sb-admin.css" rel="stylesheet"> 
    <link rel="stylesheet" href="font-awesome/css/font-awesome.min.css"> 
    <!-- Page Specific CSS --> 
    <link rel="stylesheet" href="http://cdn.oesmith.co.uk/morris-0.4.3.min.css"> 
    </head> 

    <body> 

    <div id="wrapper"> 

     <!-- Sidebar --> 
     <nav class="navbar navbar-inverse navbar-fixed-top" role="navigation"> 
     <!-- Brand and toggle get grouped for better mobile display --> 
     <div class="navbar-header"> 
      <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse"> 
      <span class="sr-only">Toggle navigation</span> 
      <span class="icon-bar"></span> 
      <span class="icon-bar"></span> 
      <span class="icon-bar"></span> 
      </button> 
      <a class="navbar-brand" href="index.php" alt="Rallypodium & Reporting" title="Rallypodium & Reporting">RPR - Administration Panel</a> 
     </div> 

     <!-- Collect the nav links, forms, and other content for toggling --> 
     <div class="collapse navbar-collapse navbar-ex1-collapse"> 
      <ul class="nav navbar-nav side-nav"> 
      <li><a href="home.php"><i class="fa fa-home"></i> Home</a></li> 
      <li><a href="news.php"><i class="fa fa-list-alt"></i> Nieuws</a></li> 
      <li><a href="fotos.php"><i class="fa fa-camera"></i> Foto's</a></li> 
      <li><a href="pages.php"><i class="fa fa-edit"></i> Pagina's</a></li> 
      <li><a href="editpages.php"><i class="fa fa-font"></i> Bewerk pagina's</a></li> 
      <li><a href="meldingen.php"><i class="fa fa-desktop"></i> Melding(en)</a></li> 
      <li class="active"><a href="sponsors.php"><i class="fa fa-money"></i> Sponsors</a></li> 
      <li><a href="settings.php"><i class="fa fa-wrench"></i> Instellingen</a></li> 
      <li><a href="accsettings.php"><i class="fa fa-pencil"></i> Account instellingen</a></li> 
      <li><a href="addadmin.php"><i class="fa fa-check"></i> Administrator toevoegen</a></li> 
      </ul> 

      <ul class="nav navbar-nav navbar-right navbar-user"> 
      <li class="dropdown user-dropdown"> 
       <a href="#" class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-user"></i> {Gebruikersnaam} <b class="caret"></b></a> 
       <ul class="dropdown-menu"> 
       <li><a href="accsettings.php"><i class="fa fa-gear"></i> Instellingen</a></li> 
       <li class="divider"></li> 
       <li><a href="#"><i class="fa fa-power-off"></i> Log uit</a></li> 
       </ul> 
      </li> 
      </li> 
      </ul> 
     </div><!-- /.navbar-collapse --> 
     </nav> 

     <div id="page-wrapper"> 

     <div class="row"> 
      <div class="col-lg-12"> 
      <h1>Sponsors<small><br></small></h1> 
      <ol class="breadcrumb"> 
       <li class="active"><i class="fa fa-money"></i> Sponsors</li> 
      </ol> 
      </div> 
     </div><!-- /.row --> 

     <div class="row"> 
      <div class="col-lg-12"> 
      <div class="panel panel-primary"> 
       <div class="panel-heading"> 
       <h3 class="panel-title"><i class="fa fa-plus"></i> Sponsor toevoegen</h3> 
       </div> 
       <div class="panel-body" style="max-height:600px; overflow:auto"> 
       <!-- Content/script hier om een sponsor te adden. --> 
<?php 

if($_SERVER['REQUEST_METHOD']=="POST") { 
       $naam = $db->quote($_POST['naam']); 
       $site = $db->quote($_POST['site']); 
       $img = $db->quote($_POST['img']); 
       $opbrengst = $db->quote($_POST['opbrengst']); 
       $duur = $db->quote($_POST['duur']); 

       $sql = " INSERT INTO sponsors (naam, site, img, opbrengst, duur) VALUES ('".$naam.", ".$site.", ".$img.", ".$opbrengst.", ".$duur."')"; 
       } 
?> 

       <center> 

        <form action="?ok" method="post"> 
        Sponsor naam: <input name="naam" class="form-control" type="text" placeholder="Naam..." style="width:auto;"><br> 
        Site (url) <input name="site" class="form-control" type="text" placeholder="http://" style="width:auto;"><br> 
        Sponsor image (url) <input name="img" class="form-control" type="text" placeholder="vb http://i.imgur.com/" style="width:auto;"><br> 
        Opbrengst: &euro; <input name="opbrengst" class="form-control" type="text" placeholder="opbrengst" style="width:auto;"> /maand<br> 

        <div class="form-group"> 
       <label>Duur:</label> 
       <select name="duur" class="form-control" style="width:auto;"> 
        <option>1 maand</option> 
        <option>2 maanden</option> 
        <option>3 maanden</option> 
        <option>4 maanden</option> 
        <option>5 maanden</option> 
        <option>6 maanden</option> 
        <option>7 maanden</option> 
        <option>8 maanden</option> 
        <option>9 maanden</option> 
        <option>10 maanden</option> 
        <option>11 maanden</option> 
        <option>1 jaar</option> 
       </select> 
       </div> 

        <button type="submit" class="btn">Opslaan</button> 
        </form> 

       </center>    

       </div> 
      </div> 
      </div> 
     </div><!-- /.row --> 

     <div class="row"> 
      <div class="col-lg-12"> 
      <div class="panel panel-primary"> 
       <div class="panel-heading"> 
       <h3 class="panel-title"><i class="fa fa-list"></i> Sponsor lijst</h3> 
       </div> 
       <div class="panel-body"> 



       <?php 

       $sql = "SELECT * FROM sponsors ORDER BY id"; 
       $results = $db->query($sql); 

       foreach($results as $row) 
       { 
        echo '<div class="alert alert-info">'; 
        echo '<button type="button" class="close" data-dismiss="alert" aria-hidden="true" alt="verwijder de sponsor." title="verwijder de sponsor.">&times;</button>'; 
        echo '<p>Naam: '; 
        echo $row['naam']; 
        echo ' <i class="fa fa-tag"></i> </p>'; 
        echo '<p>Opbrengst: '; 
        echo $row['opbrengst']; 
        echo ' <i class="fa fa-money"></i> </p>'; 
        echo '</div>'; 
       } 

       ?> 


       </div> 

       </div> 
      </div> 
      </div> 
     </div><!-- /.row --> 

     </div><!-- /#page-wrapper --> 

    </div><!-- /#wrapper --> 

    <!-- JavaScript --> 
    <script src="js/jquery-1.10.2.js"></script> 
    <script src="js/bootstrap.js"></script> 

    <!-- Page Specific Plugins --> 
    <script src="//cdnjs.cloudflare.com/ajax/libs/raphael/2.1.0/raphael-min.js"></script> 
    <script src="http://cdn.oesmith.co.uk/morris-0.4.3.min.js"></script> 
    <script src="js/morris/chart-data-morris.js"></script> 
    <script src="js/tablesorter/jquery.tablesorter.js"></script> 
    <script src="js/tablesorter/tables.js"></script> 

    </body> 
</html> 

它非常有線。選擇代碼工作正常,但插入查詢不。它出什麼問題了?

+1

調試此簡單地用'回聲$ SQL;'你會發現,你只是之前第一個和最後一個變量後的'值具有單引號()'列表。 –

+0

如果您開始學習在PDO中使用預準備語句,這很容易避免。 [我推薦本教程](http://wiki.hashphp.org/PDO_Tutorial_for_MySQL_Developers) –

回答

0

您分配了INSERT查詢字符串到一個變種,但沒有執行$db->query($sql);它。

$sql = " INSERT INTO sponsors (naam, site, img, opbrengst, duur) VALUES ('".$naam.", ".$site.", ".$img.", ".$opbrengst.", ".$duur."')"; 

添加

$db->query($sql); 
+1

斑點,但所有的變量都被錯誤地引用。 –

+0

當我插入代碼時,當按下插入按鈕時出現一個巨大的錯誤:致命錯誤:帶有消息'SQLSTATE [42000]的未捕獲異常'PDOException':語法錯誤或訪問衝突:1064您的SQL語法錯誤;請檢查與您的MySQL服務器版本相對應的手冊,以便在C:\ xampp \中的'1'行'qqqq','qqqqqq','qqqqq','qqqqq','1 maand'') htdocs \ adminpanel \ sponsors.php:99 Stack trace:#0 C:\ xampp \ htdocs \ adminpanel \ sponsors.php(99):PDO-> query('INSERT INTO sp ...')#1 {main} thrown在99行上的C:\ xampp \ htdocs \ adminpanel \ sponsors.php – Advil

+0

@ user3290259正如Michael指出的那樣,錯誤是由於查詢字符串中的引號不正確。第一個值之前有一個額外值,最後一個值之後有另一個值。 – Samutz

0

你需要告訴PDO上升錯誤

setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 

後,你可以很容易地明白你的問題。我希望

+0

該行在我的配置中是成功的。 – Advil