0

いくつかの変数を内破して MySql データベースに挿入しようとしていますが、何らかの理由で機能していません。私は何時間も試してきましたが、何が間違っているのかわかりません. お役に立てれば幸いです。

$AddressString = "address1,address2,address3,address5,postcode";

$AddressSplit = explode( ",", $AddressString );    //split the address string
$StringLength = count( $AddressSplit ) - 1;
$s = 0;      //trim any white spaces from the address string
while ( $s < count( $AddressSplit ) ) {
  $AddressSplit[$s] = trim( $AddressSplit[$s] );
  $s++;
}

//Create the Values to insert into DB
$MysqlValues = implode( "','", $AddressSplit );
$MysqlValues = "'$MysqlValues'";
$NumberVals = count( $AddressSplit );

$t = 1;
while ( $t < $NumberVals ) {
  $ad[$i] = "add$i";
  $t++;
}
$TableNames = implode( ", ", $ad );

mysql_query( "INSERT INTO pstc_add_main (" . $TableNames . ",add10,date)
                                VALUES (" . $MysqlValues . ",'$cdate')" );
}
4

3 に答える 3

0

使用するだけ

$MysqlValues = implode( ",", $AddressSplit );

次のようなコードを編集してみてください

mysql_query( "INSERT INTO pstc_add_main (".$TableNames." ,add10,date)
                            VALUES (" . $MysqlValues . ",$cdate)" );
于 2012-09-08T11:48:44.687 に答える
0

フィールド名を 1 ベースにするので、フィールドが 1 つ短くなります。最後に、同じ数のフィールドと値で終了する必要があります。

これを試して:

$t = 0;
while ( $t < $NumberVals ) {
  $ad[$i] = "add$i";
  $t++;
}

または、最初のフィールドを「add」にしたくない場合は、次のように変更します。

$t = 1;
while ( $t <= $NumberVals ) {
  $ad[$i] = "add$i";
  $t++;
}

もちろん、それは簡単なテストでした:

$sql = "INSERT INTO pstc_add_main (" . $TableNames . ",add10,date)
                           VALUES (" . $MysqlValues . ",'$cdate')";
var_dump($sql);
mysql_query($sql);
于 2012-09-08T11:41:45.417 に答える
0

未検証、

私はあなたが変わるとは思わない、

   $MysqlValues = implode("','", $AddressSplit);

  $MysqlValues = implode(",", $AddressSplit);
于 2012-09-08T11:41:48.727 に答える