2015-01-29 8 views
-2

У меня проблема:Mysql INSERT into AND php

Я создал таблицу emprunt. Эта таблица имеет два внешних ключа: «Livre_ISBN» и «adherents_login».

Моя проблема заключается в том, что не получается никаких результатов, когда я хочу вставить новую «emprunt» в свою таблицу.

Мой код:

<?php 
 
include ("config.php"); 
 
?> 
 
<!DOCTYPE html> 
 
<html> 
 
    <head> 
 
    <meta charset="utf-8" /> 
 
    <title>Emprunter un livre</title> 
 
    <link rel="stylesheet" type="text/css" href="accueil.css" /> 
 
    </head> 
 
    <body> \t 
 

 
    <?php 
 

 
    //récupération des valeurs des champs: 
 
    // session 
 
    $login = $_SESSION['login']; 
 

 
    //titre: 
 
    $titre = $_POST["titre"] ; 
 

 
    // création de la requête sql 
 
    $isbn = 'SELECT isbn FROM livre WHERE titre = "'.$titre.'" '; 
 
    //exécution de la requête SQL: 
 

 
    $result = mysql_query($isbn); 
 
    $array = mysql_fetch_array($result); 
 
    $isbn1=$array['isbn']; 
 

 
    // Ajout de l'emprunt dans la base 
 
    $sqle = 'INSERT INTO emprunt (date_emprunt, date_retour, adherents_login, livre_ISBN) 
 
      VALUES ('NOW()', 'NOW() + INTERVAL 10 DAY', "'.$login.'", "'.$isbn1.'") ' ; 
 

 
    //exécution de la requête SQL: 
 
    $requete = mysql_query($sqle) or die(mysql_error()) ; 
 
    //affichage des résultats, pour savoir si l'insertion a marchée: 
 
    if($requete) 
 
    { 
 
    echo("Vous avez jusqu'à 10 jours pour rendre le livre") ; 
 
    ?> 
 
    <br><br><a href="libraire.php">Page Libraire</a> 
 
    <?php 
 
    } 
 
    else 
 
    { 
 
    echo("L'emprunt' a échoué") ; 
 
    ?> 
 
    <br><br><a href="libraire.php">Page Adherents</a> 
 
    <?php 
 
    } 
 
    
 
?> 
 

 
    </body> 
 
    </html>

Большое спасибо, если вы обнаружите, почему этот код не работает.

+0

Ваших процитировать немного перепутались. Удалите кавычки, связанные с собственными функциями MySQL 'NOW()' и 'NOW() + INTERVAL 10 DAY' –

+0

См. [Когда использовать одинарные кавычки, двойные кавычки, обратные ссылки] (http://stackoverflow.com/a/11321508/ 541091) для некоторых примеров. –

+0

См. Также [Как предотвратить SQL-инъекцию в PHP] (http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php). Прямо сейчас, ваш код уязвим для SQL-инъекции, особенно потому, что '$ titre' не отображается. Это было бы подходящее время для начала обучения и перехода на PDO с подготовленными инструкциями, поскольку старый API mysql _ *() был устаревшим. –

ответ

1

нужен удалить котировки NOW() функции

$sqle = 'INSERT INTO emprunt (date_emprunt, date_retour, adherents_login, livre_ISBN) 
      VALUES (NOW(), NOW() + INTERVAL 10 DAY, "'.$login.'", "'.$isbn1.'") ' ; 

И попробуйте использовать PDO для большей безопасности