【问题标题】:How to insert multiple checkboxed answers into a database table?如何将多个复选框答案插入数据库表?
【发布时间】:2011-12-07 01:56:23
【问题描述】:

我在使用这个数据库时遇到了很大的问题。它正确连接并与表单的$_POST 查询中的信息连接,这些查询正在正确字段中插入到表company_info 中。

现在,我不知道我在这里做错了什么,但我不断收到

的 die 错误
"Error querying database".

数据库版本为:phpMyAdmin 2.6.4-pl3

MySQL:5.0

有什么想法吗?如果需要,我可以为您提供其余代码。

$dbc = mysql_connect('db390590179.db.1and1.com', 'dbo390590179', '*********')
or die('Error connecting to MySQL server.');

mysql_select_db("db390590179", $dbc);


$query = "INSERT INTO company_info (company_name, company_phone,  company_contact, company_address, " .
"company_city, company_state, company_zip, " .
"state_living, vehicles, position, " .
"experience, training, hazmat, " .
"require_hazmat, load_nyc, take_truck_home, " .
"have_rider, have_pet, choose_route, " .
"fuel, cash_advance, days_before_home, " .
"log_system, slip_seat, pre_pass, " .
"ez_pass, health_insurance, retirement_plan, " .
"payment_plan, calculate_pay, freight, " .
"loads, home_on_time, idle_time, " .
"equipment_condition, canada)" .

"VALUES ('$company_name', $company_phone', '$company_contact', '$company_address', '$company_city', " .
"'$company_state', '$company_zip', " .
"'$state_living', '$vehicles', '$position', " .
"'$experience', '$training', '$hazmat', " .
"'$require_hazmat', '$load_nyc', '$take_truck_home', " .
"'$have_rider', '$have_pet', '$choose_route', " .
"'$fuel', '$cash_advance', '$days_before_home', " .
"'$log_system', '$slip_seat', '$pre_pass', " .
"'$ez_pass', '$health_insurance', '$retirement_plan', " .
"'$payment_plan', '$calculate_pay', '$freight', " .
"'$loads', '$home_on_time', '$idle_time', " .
"'$equipment_condition', '$canada')";

$result = mysql_query($query, $dbc)
or die('Error querying database.');

mysql_close($dbc);

【问题讨论】:

    标签: php mysql sql forms webforms


    【解决方案1】:

    我认为这是因为它在您的 INSERT 语句中的变量 $company_phone 之前缺少引号。

    【讨论】:

      【解决方案2】:

      只需将不同的值组合在一个单引号中。

      例如 "'$company_state , $company_zip,' " ."'$state_living , $vehicles, $position, '" ."'$experience, $training, $hazmat, '" ....

      这将完美运行,并且还必须包含 *$company_phone* 开头的缺失引号。

      【讨论】:

        【解决方案3】:

        您可以从每行中删除双引号并将它们组合起来。我已删除语法错误。您可以确保结果是否得到。试试这个代码。

        $dbc = mysql_connect('db390590179.db.1and1.com', 'dbo390590179', '*********')
                or die('Error connecting to MySQL server.');
        
        mysql_select_db("db390590179", $dbc);
        
        
        $query = "INSERT INTO company_info (company_name, company_phone,  company_contact, company_address,
                company_city, company_state, company_zip,
                state_living, vehicles, position,
               experience, training, hazmat,
               require_hazmat, load_nyc, take_truck_home,
                have_rider, have_pet, choose_route,
               fuel, cash_advance, days_before_home,
                log_system, slip_seat, pre_pass,
                ez_pass, health_insurance, retirement_plan,
                payment_plan, calculate_pay, freight,
                loads, home_on_time, idle_time,
                equipment_condition, canada)
        
                VALUES ('$company_name', '$company_phone', '$company_contact', '$company_address', '$company_city',
               '$company_state', '$company_zip',
                '$state_living', '$vehicles', '$position',
                '$experience', '$training', '$hazmat', 
                '$require_hazmat', '$load_nyc', '$take_truck_home',
                '$have_rider', '$have_pet', '$choose_route',
                '$fuel', '$cash_advance', '$days_before_home',
                '$log_system', '$slip_seat', '$pre_pass',
                '$ez_pass', '$health_insurance', '$retirement_plan',
                '$payment_plan', '$calculate_pay', '$freight',
                '$loads', '$home_on_time', '$idle_time',
                '$equipment_condition', '$canada')";
        
        $result = mysql_query($query, $dbc)
                or die('Error querying database.');
        
        mysql_close($dbc);
        

        【讨论】:

          【解决方案4】:
          for (int i = 0; i < CheckBoxList1.Items.Count - 1; i++)
          {
            String str = "";
            if (CheckBoxList1.Items[i].Selected)
            {
              str = CheckBoxList1.Items[i].Text;
              con.Open();
              string sql =
                "Insert into dbtable(Category,BookTitle,Feature,SubCategory)values('" +
                DDLCategory.SelectedItem.Text + "','" + TxtBooktitle.Text + "','" +
                CheckBoxList1.Items[i].Text + "','" + DDLSubcategory.SelectedItem.Text +
                "')";
              SqlCommand cmd = new SqlCommand(sql, con);
            }
          }
          

          只需使用 DEBUGGER 并查看运行情况,您应该能够轻松解决此类问题。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2017-10-11
            • 2012-10-01
            • 1970-01-01
            • 2022-07-28
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多