【问题标题】:how to insert array values in the database that are called in the class as an object in php如何在数据库中插入在类中调用的数组值作为php中的对象
【发布时间】:2013-06-30 03:02:10
【问题描述】:

我需要将类中调用的数组值作为对象存储在数据库中。 编码

<?php
echo "BEST SELECTED POPULATION";
debug(GA::select($ga->population,'total',3)); //The best
$asma[]=GA::select($ga->population,'total',3); //The best
}
print_r($asma);
?>

$array1 是我得到输出值的数组,这个数组是动态的,值的数量取决于用户输入。

 <?php
    include('config.php');
    //database connection
    //query
    $new_array = array($asma);

    foreach($new_array as $key => $value) {

       foreach ( $value as $ind => $data ) {
          /*
          You now have access to field values like this
           $data['Voltage']
           $data['Number']
           $data['Duration']
          */

          // query makes no sense 3 fields mentioned and 4 parameters given???
          // you will have to decide which of the fields from $data[] you want to load 
          // to which fields in the database.
          $sql = "INSERT INTO ga (gaid,fe,fe1,timestamp) VALUES ('', '$key', '$value', '".date("Y-m-d H:i:s")."')";
          $stmt = mysql_query($sql) or die(mysql_error());

       } // endforeach
    } // endforeach
?>

如果我使用上面的代码进行插入,它不会显示错误,但它会像这样在表 ga 中输入值

gaid      fe      fe1     timestamp
 1        0      array      -

上面我用来插入表格的代码ga print_r($asma);的输出

Array ( 
    [0] => Array ( 
        [0] => H Object ( 
            [Voltage] => 12 
            [Number] => 1 
            [Duration] => 3 
        ) 
        [1] => H Object ( 
            [Voltage] => 26 
            [Number] => 4 
            [Duration] => 8
        ) 
        [2] => H Object ( 
            [Voltage] => 26 
            [Number] => 4 
            [Duration] => 8 
        ) 
    ) 
    [1] => Array ( 
        [0] => H Object ( 
            [Voltage] => 18 
            [Number] => 1 
            [Duration] => 4 
        ) 
        [1] => H Object ( 
            [Voltage] => 38 
            [Number] => 4 
            [Duration] => 10 
        ) 
        [2] => H Object ( 
            [Voltage] => 36 
            [Number] => 2 
            [Duration] => 8 
        ) 
    ) 
) 

我需要将数据库中的所有值存储在上面的输出 6 值中。

这是餐桌

gaid    fe    fe1    fe2   timestamep

【问题讨论】:

  • 请人们帮助我,我需要解决方案
  • 您的插入值数量不正确(gaid、fe、时间戳)VALUES(''、$key、$val、时间戳)。注意 3 和 4。尝试去掉 '',这样会是:$sql = "INSERT INTO ga (gaid,fe,timestamp) VALUES ('$key', '$value','".date("Y-m-d H:i:s")."')";
  • 先生,我需要将值存储在数据库中
  • 先生,它在以下位置显示错误:$new_array = array_combine($asma,$asma);
  • 错误:注意:第 156 行 C:\wamp\www\EMS3\ge.php 中的数组到字符串转换

标签: php html phpmyadmin


【解决方案1】:

您在描述中一直谈论 array1 并没有帮助,但我在您的代码中没有看到任何名为 array1 的内容。

但假设array1 = $new_array 这里是一个建议。

<?php
    include('config.php');
    //database connection
    //query
    /*
     * This achieves nothing other than adding an extra level of array
     *  Try removing it
     */ 
    //$new_array = array_combine($asma,$asma);

    foreach($asma as $key => $value) {

       foreach ( $value as $ind => $hObject ) {
          $q = "INSERT INTO ga (fe, fe1, f2, timestamp ) VALUES (%d, %d, %d, '%s' );
          $qs = sprintf( $q, $hObject->Voltage,$hObject->Duration, 
                             $hObject->Number, date("Y-m-d H:i:s") );
          $result = mysql_query($qs);
          if ( ! $result ) {
              die( 'Insert failed ' . mysql_errno() . ' ' . mysql_error() );                
          }

       } // endforeach
    } // endforeach
?>

【讨论】:

  • 它仍然显示错误:注意:数组到字符串的转换在 C:\wamp\www\EMS3\ge.php 第 156 行 $new_array = array_combine($asma,$asma);跨度>
  • “字段列表”中的未知列“数组”,这也正在显示
  • 如果您能帮我插入数据库,我将不胜感激
  • 好的,所以请在$new_array = (..) 行之前添加print_r($asma),然后发布。也做一个print_r($new_array)$new_array = (..) 之后并发布它。
  • 其实你为什么要做这个语句`$new_array = array_combine($asma,$asma);`
猜你喜欢
  • 2020-04-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-09
  • 2018-02-23
  • 2021-10-06
  • 2013-07-05
相关资源
最近更新 更多