2014-09-22 7 views
1

Я начинаю как в mysql, так и в php. И очень сильно застрял в этой проблеме. Не знаю, где проблема. но если я выполняю запрос вставки напрямую, он выполняется, а если я принимаю его от пользователя, то он не будет (это показано в коде). Вероятно, проблема связана с методом $ _POST [], который я использую для получения значений, представленных пользователем. Я представил оба кода, addbooks.php (форма, из которой пользователь передает значения) и add.php (для вставки в базу данных).Невозможно вставить данные в базу данных (mysql) с помощью php

//add.php 
<?php 
$con=mysqli_connect("localhost","root","","a_database"); 
// Check connection 
if (mysqli_connect_errno()) { 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
} 

//Using the following statements i am able to insert data. 
//mysqli_query($con,"INSERT INTO books (book_name, book_author, book_price) 
//VALUES ('Peter', 'Griffin',35)"); 


//But when i accept it from user(for which the following script is written), it is not working 
if (isset($_POST['name']) && isset($_POST['author']) && isset($_POST['publication']) && isset($_POST['price']) && isset($_POST['stock'])) 
    { 
    $book_name = $_POST['name']; //post method to retrieve the value submited by user 
    $book_author = $_POST['author']; //post method to retrieve the value submited 
    $book_publication = $_POST['publication']; //post method to retrieve the value submited by user 
    $book_price = $_POST['price']; //post method to retrieve the value submited by user 
    $book_stock = $_POST['stock']; //post method to retrieve the value submited by user 
    mysqli_query($con, "INSERT INTO 'books' (book_name, book_author, publication, book_price, book_stock) VALUES ($book_name, $book_author, $book_publication, $book_price, $book_stock)"); 
mysqli_close($con); 

} 
?> 

//the form from which the values are being accepted(addbooks.php)is given bellow. 
/*addbooks.php*/ 
<?php 
//require 'connect.php'; 
//require 'newEmptyPHP.php'; 
//require 'filename.php'; 

?> 
<html> 
    <body><form name="form1" method="post" action="add.php"> //call to addphp 
      <label> 
        Name of Book 
        <input type="text" name="name"/> //Accepting book details 
        <br> 
        Author 
        <input type="text" name="author"/> //Accepting book details 
        <br> 
        Publication 
        <input type="text" name="publication"/> //Accepting book details 
        <br> 
        Price 
        <input type="text" name="price"/> //Accepting book details 
        <br> 
        Stock 
        <input type="text" name="stock"/> //Accepting book details 

        <br> 
        submit //submitting th datails 
        <input type="submit" name="Submit" value="Submit"/> 

      </label> 
     </form> 
    </body> 
</html> 
+0

изменения 'books'' INSERT INTO» в 'не INSERT INTO books' не одинарные кавычки для имени таблицы имя COL. –

ответ

0

Вы не заключите значение символов в кавычках также нет необходимости в кавычках для имени таблицы (вместо кавычек можно использовать кавычку `для TABLENAME и имен столбцов в запросе. И значение должно быть заключено в кавычки только).

mysqli_query($con, "INSERT INTO `books` (book_name, book_author, publication, book_price, 
book_stock) VALUES ('$book_name', '$book_author', '$book_publication', $book_price, 
$book_stock)"); 
+0

Работал .. !! Благодаря тонну. Ты обалденный. Хорошего дня...!! –

0

Удалите одинарные кавычки из книг и он должен работать.

Также лучшим способом отладки этой проблемы является сохранение запроса sql в строке и использование эха и печать запроса. А потом посмотрим, что запрос его формирования и сначала попытаться непосредственно выполнить его на тузд оболочки

0
mysqli_query($con, "INSERT INTO books (book_name, book_author, publication, book_price, book_stock) VALUES ('{$book_name}', '{$book_author}', '{$book_publication}',$book_price, '{$book_stock}')"); 
+0

Некое объяснение сделало бы это лучшим ответом, может быть;) – Frazz

Смежные вопросы