2012-05-08 2 views
-3

Я довольно новичок в PHP и SQL-скриптах, поэтому это, вероятно, легкое исправление, которое я просто не могу понять. У меня есть база данных под названием InventoryControl с таблицей активов под ней. Для целей тестирования, так что я могу понять свой путь вокруг PHP и SQL, у меня был очень простой веб-страница с одной формой:PHP-форма не отправляется в базу данных Mysql

<form action="insertasset.php" method="post"> 
Asset Tag: <input type="text" name="assettag" /> 
<input type="submit" /> 
</form> 

На размещает, он будет загрузить этот скрипт:

<?php 
echo "PHP TEST!"; 
echo $_POST["assettag"]; 
$con=mysql_connect("localhost","sampleuser","samplepass"); 
if (!$con) 
    { 
    echo "CONNECTION FAILED!"; 
    die('Could not connect: ' . mysql_error()); 
    } 
echo "I succeeded!"; 
mysql_select_db("InventoryControl", $con); 

$sql="INSERT INTO assets (asset_tag, manufacturer, model, type, location, decomissioned, employee_owner, computer_name, price, day, month, yea$ 
VALUES 
('$_POST[assettag]', asdf, asdf, asdf, 0, 0, asdf, asdf, 0, 0, 0, 0)"; 
echo "Posted!"; 
if (!mysql_query($sql,$con)) 
    { 
    die('Error: ' . mysql_error()); 
    echo "I didn't work"; 
    } 
echo "1 record added"; 

mysql_close($con); 


?> 

I добавили несколько строк эха для тестирования, чтобы увидеть, где происходит сбой, но я застрял в проблеме единственных ответов, которые я получаю от запуска PHP-скрипта: «PHP TEST!» а затем информацию, которую я только что опубликовал из предыдущей формы. Итак, я знаю, что это загрузка PHP-скрипта, и что он отправляет данные из формы, но я не могу представить ее в таблице. В таблице нет каких-либо требований к заполнению столбцов, насколько я знаю (я установил его с довольно базовыми параметрами, главным ключом является asset_tag, в противном случае его просто столбцы для хранения данных). Если бы кто-нибудь мог дать новичку какую-нибудь помощь, было бы весьма полезно.

+1

Прекратите использование устаревшего '' mysql_ * расширения и [выбрать более подходящий MySQL API] (http://us3.php.net/manual/en/mysqlinfo.api.choosing.php) – cspray

+1

ваших строки 'asdf' должен быть указан как' 'asdf'' в списке VALUES –

+0

Кстати, я знаю, что строка для $ sql = ... имеет нечетный синтаксис, потому что я пытался копировать и вставлять из Putty, и я не сделал получить весь текст –

ответ

1

Если вы используете mysql_query() функция использовать его как это:

mysql_query("...") or die(mysql_error()); 

Таким образом, вы увидите сообщение об ошибке.

Когда дело доходит до вашей проблемы, вам необходимо указать свои значения в инструкции INSERT INTO.

НО ТАКЖЕ вы можете указывать имена столбцов одной строки. Иногда имена столбцов могут быть специальными ключевыми словами, такими как «порядок».

Подробные сведения об ошибках можно увидеть более четко, если вы используете его с mysql_error().

+0

Хотелось бы мне увидеть, что возвращала функция mysql_error(), но, к сожалению, я не получаю ответа за пределами эха «PHP TEST!». и echo "$ _POST [" assettag "] –

+1

тоже выложите ту же самую вещь mysql_select_db и mysql_connect. Возможно, у вас есть ошибка в этих строках. –

+0

Вы заглянули в журналы ошибок сервера, чтобы узнать, что там происходит? – andrewsi

0
$asset=$_POST['assettag']; 
$sql="INSERT INTO assets VALUES ('".$asset."', 'asdf', 'asdf', 'asdf', 0, 0, 'asdf', 'asdf', 0, 0, 0, 0)"; 
echo "Posted!"; 
if (!mysql_query($sql)) 
{ 
die('Error: ' . mysql_error()); 
echo "I didn't work"; 
} 
Смежные вопросы