我正在两个文本区域输入一个数字列表。一个区域称为SectionID,另一个区域称为另一个区域。两者的长度相等。我将这些提交到PHP处理页面,该页面将详细信息输入到SQL数据库。
<?PHP
$exchange = $_POST['Exchange'];
$estimate = $_POST['Estimate'];
$sectionid = $_POST['SectionID'];
$length = $_POST['Length'];
$username = "USER";
$password = "PASS";
$hostname = "HOST";
$con = mysql_connect($hostname, $username, $password) or die("Unable to connect to MySQL");
$selected = mysql_select_db("DATAB", $con) or die("Could not select examples");
$sectionid = explode("\n", str_replace("\r", "", $sectionid));
$length = explode("\n", str_replace("\r", "", $length));
foreach ($sectionid as $key => $secdata) {
$lendata = $length[$key];
$query = "INSERT INTO table (Exchange, Estimate, SectionID, Length) VALUES ('$exchange','$estimate','$secdata','$lendata')";
if (!mysql_query($query,$con))
{
die('Error: ' . mysql_error($con));
}
}
echo "$estimate created on $exchange Exchange!";
mysql_close($con);
?>
由于某种原因,这不起作用,我只是看不到我的错误。从来没有我必须这样做。当前结果仅对数据库进行1次输入,将SectionID留空并使用文本区域中的多行填充长度。
我想要实现的是创建与列表中的SectionID一样多的条目,并插入彼此对应的SectionID和Length。这不是我唯一的尝试,我使用了大约4种爆炸$ _POST的不同变体。
有人在乎帮助我吗?
答案 0 :(得分:0)
爆炸或与textarea值相关的任何问题都没有问题。它是一个SQL语法错误
试试这个
$query = "INSERT INTO `table` (`Exchange`, `Estimate`, `SectionID`, `Length`) VALUES('$exchange','$estimate','$secdata','$lendata')";
您现在可以启用php错误显示。
答案 1 :(得分:0)
要调试代码,请尝试
print_r($sectionid);
foreach ($sectionid as $key => $secdata) {
$lendata = $length[$key];
print '<br />row '.$key . ':{'.$secdata.'}';
$query = "INSERT INTO table (Exchange, Estimate, SectionID, Length) VALUES ('$exchange','$estimate','$secdata','$lendata')";
if (!mysql_query($query,$con))
{
die('Error: ' . mysql_error($con));
}
}
如果正在接收和解析数据,您应该在屏幕上看到打印到屏幕上的初始数组以及阵列中的每个变量,这些变量打印在括号括起的单独行上。
如果您看到类似
的内容第0行:{}
然后就意味着你没有正确地解析或接收数据。检查您是否发布了sectionID而不是sectionid(带有“id”部分的上/下方差)。