2016-11-06 11 views
-2
<?php 
require 'connect.inc.php'; 

$food= $_POST['food']; 
$cost= $_POST['cost']; 

$sqlinsert = "INSERT INTO test (eat, pay) VALUES ('$food','$cost')"; 

?> 

<form method = "POST" action = "index.php"> 
    Food: <input type = "text" name = "food"> 
      <br/> 
    Cost: <input type = "text" name = "cost"> 
      <br/> 
      <input type = "submit" value = "order"> 
</form> 

Почему мой код не работает? index.php отлично, он хорошо соединяется, но в моей базе данных при запуске этого кода в моей базе данных не выводится.Почему мой код не вставляет данные в базу данных?

+0

где вы запустили запрос? – Federkun

+0

Поскольку назначение текста запроса переменной не означает, что запрос будет выполнен. –

+0

выполнить mysqli_query() –

ответ

2

Вы, кажется, новичок в базах данных, видя ваши другие вопросы, и это единственное, что связано с работой db.

Эта строка никогда не запускается на выполнение:

$sqlinsert = "INSERT INTO test (eat, pay) VALUES ('$food','$cost')"; 

Мы не знаем, какие MySQL API вы используете, чтобы соединиться с; если это mysql_, или mysqli_ или PDO, или другие, так как вы не упомянули об этом в своем вопросе.

В зависимости от используемого API вам необходимо запустить mysql_query() или mysqli_query() или query()/execute() в PDO.

Consult следующие ссылки о том, как это сделать:

Проверка на наличие ошибок также с использованием того же API подключен с, и видя, что вы, скорее всего, запускаете этот код внутри одного и того же файла, вам нужно использовать условное выражение aroun d ваши массивы POST, чтобы проверить, пусты ли они, и/или использовать isset() на кнопке отправки и присвоить ей атрибут «имя».

<input type = "submit" name = "submit" value = "order"> т.е .:

if(isset($_POST['submit'])) {...} с

В противном случае, вы стоите на получение ошибок отброшен.

Если пустая ссылка:

Примечание: Различные интерфейсы MySQL не перемешиваются, так что вы не можете связаться с mysql_ и запрос с mysqli_query() или PDO, имейте это в виду.

Другое дело, чтобы данные, поступающие в базу данных, не содержали символов, на которые MySQL будет жаловаться, таких как апострофы.

Поэтому вам нужно будет избежать этих данных. Это полезно по другой причине, избегая возможной инъекции SQL; вы должны использовать для этого подготовленное заявление.

Ссылки:


Сноски:

Если вы используете mysql_ API для подключения с того, что API является устарел и удален в PHP 7.0. Если это так, то вам нужно будет использовать либо mysqli_, либо PDO API.

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