INSERT SQL语句不起作用

时间:2012-09-28 01:00:53

标签: php sql forms postgresql insert

我在PostgreSQL系统上。我之前使用过它并且没有遇到过这个问题,但那是基本的选择查询。

现在我正在尝试通过HTML表单和php插入数据。

当我填写数据时(即使我在表单上输入所有字段),我也没有收到错误,所以我认为应该插入....

这是我的php / html:

<div id='insert_form'>
<form method='POST' action='insert.php' onsubmit='return checkSubmit()'>
  <label id='lbl_header'><b>Bold</b> fields are required.</label>
  <br /><br />
  <label class='required' for='code1' id='lbl_code1'>* Country code</label>
  <input type='text' name='code1' id='code1' maxlength='3' size='3'/>
  <br /><br />
  <label class='required' for='code2' id='lbl_code2'>* Country code (abbr.)</label>
  <input type='text' name='code2' id='code2' maxlength='2' size='2'/>
  <br /><br />
  <label class='required' for='country_name' id='lbl_name'>* Country name</label>
  <input type='text' name='country_name' id='country_name' maxlength='52'/>
  <br /><br />
  <label class='required' for='continent' id='lbl_continent'>* Continent</label>
  <select name='continent' id='continent'>
    <option value='Africa'>Africa</option>
    <option value='Antarctica'>Antarctica</option>
    <option value='Asia'>Asia</option>
    <option value='Europe'>Europe</option>
    <option value='North America'>North America</option>
    <option value='Oceania'>Oceania</option>
    <option value='South America'>South America</option>
  </select>


  <br /><br />
  <label class='required' for='region' id='lbl_region'>* Region</label>
  <input type='text' name='region' id='region' maxlength='26' />
  <br /><br />
  <label class='required' for='area' id='lbl_area'>* Surface area</label>
  <input type='text' name='area' id='area' />
  <br /><br />
  <label for='indepYear' id='lbl_year'>Year of independence</label>
  <input type='text' name='indepYear' id='indepYear' />
  <br /><br />
  <label class='required' for='population' id='lbl_pop'>* Population</label>
  <input type='text' name='population' id='population' />
  <br /><br />
  <label for='lifeExp' id='lbl_lifeExp'>Life expectancy</label>
  <input type='text' name='lifeExp' id='lifeExp' />
  <br /><br />
  <label for='gnp' id='lbl_gnp'>GNP</label>
  <input type='text' name='gnp' id='gnp' />
  <br /><br />
  <label for='gnp_old' id='lbl_gnp_old'>GNP (old)</label>
  <input type='text' name='gnp_old' id='gnp_old' />
  <br /><br />
  <label class='required' for='local_name' id='lbl_local_name'>* Local name</label>
  <input type='text' name='local_name' id='local_name' maxlength='45' />
  <br /><br />
  <label class='required' for='govt' id='lbl_govt'>* Form of government</label>
  <input type='text' name='govt' id='govt' maxlength='45' />
  <br /><br />
  <label for='HoS' id='lbl_HoS'>Head of state</label>
  <input type='text' name='HoS' id='HoS' maxlength='60' />
  <br /><br />
  <label for='capital' id='lbl_capital'>Capital code</label>
  <input type='text' name='capital' id='capital' />
  <br /><br />
  <label><a href='index.php'>Return to Selection Page</a></label>
  <input type='submit' name='submit' value='Insert row' />
</form>


?>

连接文件已被证明可以在我过去的项目中使用,所以我知道这不是问题。我编译了它,它也说这不是问题。知道为什么它不会插入数据库吗?或者也许我可以使用if语句添加到最后的函数,该语句可以检查它是否实际插入了?

1 个答案:

答案 0 :(得分:3)

以您的方式使用INSERT,您必须确保VALUES()子句的内容与表中列的数量和顺序完全匹配。如果您没有包含任何列,即使它们具有默认值或自动编号,该命令也将失败。由于您没有显示有关您的桌子的任何信息,我不知道这是否是您问题的根源。

如果是问题,您可以使用完整形式的INSERT:

 INSERT INTO county (col1, col2, col3) VALUES ($val1, $val2, $val3)

在任何情况下都强烈建议使用此表单,因为它不对表进行任何假设(列的名称除外),并且防止命令在稍后的结构更改中失败。