2015-09-04 4 views
-2

У меня возникли проблемы с вводом данных в базу данных «justrated». После того, как пользователь ввел свое название компании, он должен создать новую запись в таблице «business». По какой-то причине я не могу получить его так, чтобы данные вводились в таблицу. Любые советы с удовольствием оцениваются.Вставка данных в базу данных MYSQL

КОД:

<!DOCTYPE html> 
<html> 
<head> 
    <title>Test</title> 
</head> 
<body> 
<form> 

<input type="text" name="BusinessName" method="POST"> 
<input type="Submit" value="submit" name="submit" method="POST"> 

</form> 

<?php 


if (isset($_POST["submit"])){ 
    //create connection 
    $conn = new mysqli("localhost", "root", "", "justrated"); 
    // Check connection 
    if ($conn->connect_error) { 
     die("Connection failed: " . $conn->connect_error); 
    } 

    $sql = "INSERT INTO businesses (BusinessName) 
VALUES ('".$_POST['BusinessName']."')"; 
    mysql_query($sql); 
    if ($conn->query($sql) === TRUE) { 
     echo "New record created successfully"; 
    } else { 
     echo "Error: " . $sql . "<br>" . $conn->error; 
    } 

    $conn->close(); 
} 

?> 

</body> 
</html> 
+0

Вам необходимо изучить [html-форму] (http://www.w3schools.com/html/html_forms.asp). И не смешивайте 'mysql и mysqli' – Saty

+0

Вы не можете использовать' mysql_query() ', когда используете' mysqli'. – Barmar

+0

@Saty Что случилось с его формой? – Barmar

ответ

0

Html:

<form method="POST"> 

    <input type="text" name="BusinessName"> 
    <input type="Submit" value="submit" name="submit" > 

    </form> 

Php: Использование

$conn->query($sql); not mysql_query() 
+0

Это не правильный синтаксис для 'mysqli_query'. У него уже есть '$ conn-> query ($ sql)', это правильно. – Barmar

0

HTML код

<form method="post" action="test1.php"> 
<input type="text" name="BusinessName" > 
<input type="Submit" value="submit" name="submit" > 
</form> 

PHP код

if (isset($_POST["submit"])) 
{ 
    //create connection 
    $conn = new mysqli("localhost", "root", "", "justrated"); 
    // Check connection 
    if ($conn->connect_error) { 
     die("Connection failed: " . $conn->connect_error); 
    } 

    $sql = "INSERT INTO businesses (`BusinessName`) 
     VALUES ('".$_POST['BusinessName']."')"; 

    if ($conn->query($sql) === TRUE) { 
     echo "New record created successfully"; 
    } else { 
     echo "Error: " . $sql . "<br>" . $conn->error; 
    } 
    $conn->close(); 
} 

Не смешивать mysqlmysqli & ....

0

привет пожалуйста, проверьте этот я надеюсь, что это работает для вас

$sql = "INSERT INTO businesses (`BusinessName`) 
     VALUES ('".$_POST['BusinessName']."')"; 

if (mysqli_query($conn, $sql)) { 
    echo "New record created successfully"; 
} else { 
    echo "Error: " . $sql . "<br>" . mysqli_error($conn); 
} 
1

Одна из ваших проблем что $_POST['BusinessName'] пуст, потому что форма была отправлена ​​с использованием запроса GET, а не запроса POST. Атрибут method=POST относится к элементу <form>. Например:

<form method="POST"> 
    <input type="text" name="BusinessName"> 
    <input type="Submit" value="submit" name="submit"> 
</form> 

Кроме того, вы должны экранировать данные правильно, прежде чем вставить его в базу данных:

$sql = "INSERT INTO businesses (BusinessName) 
VALUES ('" . $conn->real_escape_string ($_POST['BusinessName']) . "')"; 

Кроме того, в этих двух строках:

mysql_query($sql); 
if ($conn->query($sql) === TRUE) { 

вы пытаетесь выполнить тот же запрос дважды с использованием расширения MySQL и MySQLi. Вы должны удалить первую строку.

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