PHP - 列计数与值计数不匹配。

标签 php mysql

你好,这是我的代码。

print_r($_POST);
foreach ($_POST as $key => $value){
  echo $$key  =  $value;
}

echo $dpopName1= json_encode($_POST['dpopName']);
echo $dpopPosition1= json_encode($_POST['dpopPosition']);
echo $dpopLocation1= json_encode($_POST['dpopLocation']);

    if($sub_cat=='all') {
    $sub_cat='';    
    }

//$sql = mysql_query("INSERT INTO venders(vender_name, contact_personName,category, subcategory,email,contact_no,address,city,state,pin_code) VALUES ('$vendor_name', '$cont_personName','$cat_type','$sub_cat','$vendor_email', '$contact_no','$vendor_address','$state','$city','$vendor_pin')") or die(mysql_error());
  $insertQuery=mysql_query("INSERT IGNORE INTO `venders`(`vender_name`, `vendor_ddNo`, `vendor_ddDate`,     `vendor_regid`, `dateCorp`, `contact_personName`, `category`, `subcategory`, `email`, `contact_no`, `fax_no`,      `website`, `address`, `city`, `taluka`, `state`, `pin_code`, `vendor_Baddress`, `Bstate`, `Bcity`, `Bvendor_pin`,      `Btaluka`, `Bcontact_no`, `Bfax_no`, `Bvendor_email`, `Bwebsite`, `govtUndertake`, `stateUndertake`, `publiclCompany`,      `privatelCompany`, `copSociaty`, `partnerFirm`, `propritorship`, `anyOtherspecify`, `dpopName`, `dpopPosition`,       `dpopLocation`, `panDetails`, `panRequireFor`, `serviceTaxregDetails`, `serviceTaxrequiredFor`, `pfRegisterDetails`,       `pfRequireFor`, `excDutyreg`, `excRequireFor`, `labourLicensedetails`, `licencePanrequireFor`, `stvRegNo`,       `stvRequireFor`, `stvregDateDetails`, `stvregDateRequiredFor`, `orgStrngth`, `NameofCompany`, `NameofBank`,       
     `nameOfbankBranch`, `cityofMB`, `accountNo`, `accountType`, `bankBranchIfsccode`, `micodeofBankbranch`,       `otherBankerDetails`) 
     VALUES ('$vendor_name','$vendor_ddNo','$vendor_ddDate','$vendor_id','$dateCorp','$cont_personName','$vendor_address',      '$cat_type','$sub_cat','$vendor_email','$contact_no','$fax_no','$website','$vendor_address','$city','$taluka','$state','$vendor_pin',      '$vendor_Baddress','$Bstate','$Bcity','$Bvendor_pin','$Btaluka','$Bcontact_no','$Bfax_no','$Bvendor_email','$Bwebsite','$govtUndertake',      '$stateUndertake', '$publiclCompany',      '$privatelCompany', '$copSociaty', '$partnerFirm', '$propritorship', '$anyOtherspecify', '$dpopName1', '$dpopPosition1',       '$dpopLocation1','$panDetails', '$panRequireFor', '$serviceTaxregDetails', '$serviceTaxrequiredFor', '$pfRegisterDetails',       '$pfRequireFor', '$excDutyreg', '$excRequireFor', '$labourLicensedetails', '$licencePanrequireFor', '$stvRegNo',       
     '$stvRequireFor', '$stvregDateDetails', '$stvregDateRequiredFor', '$orgStrngth', '$NameofCompany', '$NameofBank',       '$nameOfbankBranch', '$cityofMB', '$accountNo', '$accountType', '$bankBranchIfsccode', '$micrCodeofBankbranch',       '$otherBankerDetails'
    )")  or die(mysql_error());  
  1. 数组到字符串转换错误
  2. 列计数与第 1 行的值计数不匹配。

我尝试以下方法来解决问题:

  1. 为了解决第一个错误,我使用 json 编码将数组转换为 json 字符串,然后将 json 字符串变量放入插入表中。
  2. 对于列计数错误,我检查了我的数据库 ID 是否有主键,并且它有主键,然后我还计算了所有值和列,并且交叉检查了所有语法,但我什么也没发现。

最佳答案

当您插入大量列时,更好的插入方法是...使用 INSERT INTO SET ,因为这样您就可以更好地了解缺少哪些列..,而不是仔细检查映射的 INSERT,并检查是否每个值都有每个列。

INSERT INTO sometable
   SET field1 = 'value1',
       field2 = 'value2',
       field3 = 'value3'

(Milov,2004)。

这也有帮助,到 escape您插入的每个值(但请记住...建议使用 PDO 而不是 MySQL Real Escape)。

关于PHP - 列计数与值计数不匹配。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23212577/

相关文章:

mysql - SQL 更新修改表中的列

mysql - mysql数据库中的标志字段

php - 如何从数据库表中检索所有行并遍历每一行以匹配密码 PHP

php - 如何阻止 Outlook.com 跟踪电子邮件中的链接?

java - 从 PHP 访问 java 应用程序

php - Laravel,将加密的 secret 存储在 MySQL 索引列中

php - 内存不足错误可能是由数据库大小引起的吗?

mysql - 使用相同模式查询数千个 MySQL 数据库

php - 如何在 PHP 中捕获 cURL 错误

php - Illustrator 以 PDF 格式打开