PHP使用1个变量INSERT新行到DB,所有其他默认值?

时间:2015-07-04 16:19:32

标签: php mysqli

我有一个大约10列的数据库。我希望能够有一个输入第一列变量的表单,并在余数上使用预定义的默认值。

以下是我在 locationbuilder.php 上的当前表单:

<form method="post" action="builder.php" id="locationbuld">
    Location Name <input type="text" name="locationname"/><br/>
    <input type="submit"/>
</form>

builder.php

$propertyname = $_POST['locationname'];
$loadCP = $conn->query("INSERT INTO properties (propertyName) VALUES ('$propertyname')");
header("Location: locationbuilder.php");

当我运行表单时,它会通过并重定向回来,但它不会插入新行。我假设它是因为我有大约9个未确定的列,但我不能100%确定如何解决这个问题。

谢谢!

另外,如果它有帮助,这是我使用的创建表,这样你就可以看到数据/列:

$cp = "CREATE TABLE properties (
    id INT(3) NOT NULL AUTO_INCREMENT PRIMARY KEY,
    propertyName VARCHAR(40) NOT NULL,
    location VARCHAR(15) DEFAULT 'South Side',
    propertyType VARCHAR(8) DEFAULT 'Business',
    businessType VARCHAR(20) DEFAULT 'None',
    ownerName VARCHAR(30) DEFAULT 'None',
    gangHQFor VARCHAR(30) DEFAULT 'None',
    drugFront VARCHAR(3) DEFAULT 'No',
    productionType VARCHAR(10) DEFAULT 'None',
    productionQuantity INT(4) DEFAULT '0',
    weeklyCost INT(15) DEFAULT '0',
    dailyIncome INT(15) DEFAULT '0',
    available VARCHAR(3) DEFAULT 'Yes',
    confiscated VARCHAR(3) DEFAULT 'No',
    confiscatedTime VARCHAR(20) DEFAULT '0'
)";
$conn->query($cp);

3 个答案:

答案 0 :(得分:2)

我不知道您是如何创建连接对象oldest = nil youngest = nil oldest_dob = Date.new(9999) # 9999-01-01 youngest_dob = Date.new(0) # 0000-01-01 csv = CSV.read('file.csv', {:col_sep => "\s"}) csv.each do |row| date = Date.parse row[1] if date < oldest_dob oldest = row[0] oldest_dob = date end if date > youngest_dob youngest = row[0] youngest_dob = date end end 的。所以我给了这个代码,试试这个并告诉: -

你的桌子必须是这样的: -

$conn

代码: -

TABLE properties(some default values are changed) =
    id INT(3) NOT NULL AUTO_INCREMENT PRIMARY KEY,
    propertyName VARCHAR(40) NOT NULL,
    location VARCHAR(15) DEFAULT 'South Side',
    propertyType VARCHAR(8) DEFAULT 'Business',
    businessType VARCHAR(20) DEFAULT 'None',
    ownerName VARCHAR(30) DEFAULT 'NULL',
    gangHQFor VARCHAR(30) DEFAULT 'NULL',
    drugFront VARCHAR(3) DEFAULT 'No',
    productionType VARCHAR(10) DEFAULT 'NULL',
    productionQuantity INT(4) DEFAULT '0',
    weeklyCost INT(15) DEFAULT '0',
    dailyIncome INT(15) DEFAULT '0',
    available VARCHAR(3) DEFAULT 'Yes',
    confiscated VARCHAR(3) DEFAULT 'No',
    confiscatedTime VARCHAR(20) DEFAULT '0'

注意: - 相应地更改凭证值和其他变量值。感谢

答案 1 :(得分:0)

<强> builder.php

<?php
$propertyname = $_POST['locationname'];
$loadCP = $conn->query("INSERT INTO properties (propertyName) VALUES ('$propertyname')");
header("Location: locationbuilder.php");
?>

答案 2 :(得分:-1)

由于我们没有完整申请表的副本,因此有很多事情可能会出错,但这会有所帮助

  1. 检查你的连接字符串,你使用的是mysql抽象类吗?
  2. 使用调试器记录您的错误,尽管脚本运行并不意味着它没有产生错误。根据您的错误设置,它可能会以静默方式失败。 Firephp可能是一个易于学习的PHP调试工具