所有数据都在传递,因为我已经一遍又一遍地充分测试以确保它是完整的。我遇到的问题是我的 INSERT 语句:
<?php
$db_name = "db";
$connection = mysql_connect('localhost','root','') or die(mysql_error());
$db = mysql_select_db($db_name,$connection) or die(mysql_error());
$sql = "INSERT INTO badges (id,company_name,company_address,company_city,company_state,company_zip, badge_name, badge_title) VALUES ";
for($i = 0; $i < count($_POST['badge_name']); $i++) {
$sql = "(
$_SESSION[company_name],
$_SESSION[company_address],
$_SESSION[company_city],
$_SESSION[company_state],
$_SESSION[company_zip],
".$_POST['badge_name'][$i].",
".$_POST['badge_title'][$i].")";}
$result = mysql_query($sql) or die(mysql_error());
echo print_r($sql);
?>
我的 $sql print_r() 是:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Test Company Name, 1224 Adams Ave, Portland, Oregon, 97128, Bill Smith, W' at line 2
我的表中没有插入任何数据。我已经验证并测试了用户/通行证等。一切正常。
为了更好地衡量,这是我的数组输出,显示所有数据都按预期传递。
Mike Jones
Owner
测试公司名称
1224 Adams Ave
Portland
Oregon
97128
Bill Smith
工人
测试公司名称
1224 Adams Ave
Portland
Oregon
97128
我想我在这里遗漏了一些愚蠢的简单东西,但只是在这上面呆了 4-5 个小时就开始发疯了!感谢您对我的无知的任何见解!
这是我的表转储以供参考:
CREATE TABLE IF NOT EXISTS `badges` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`company_name` varchar(255) NOT NULL,
`company_address` varchar(255) NOT NULL,
`company_city` varchar(100) NOT NULL,
`company_state` varchar(25) NOT NULL,
`company_zip` varchar(12) NOT NULL,
`badge_name` varchar(100) NOT NULL,
`badge_title` varchar(100) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;