0

私はphpが初めてです..これは私の問題です:私は2つの分解された文字列を持っています.2番目の分解された文字列を最初の分解された文字列の値にしたいです.挿入には問題ありません。

たとえば、以下のコードでは、$date を $layer の値にしたいと考えています。$layer の 1 番目の単語は $date の 1 番目の単語への値、2 番目の単語から 2 番目の単語への値などです。

$layer1=$_POST['layer'];

$date=$_POST['date'];

$layer=explode(",",$layer1);
$date=explode(",",$date);

foreach ($layer as $layer2=>$date )
{ 
//my problem is how to make the date a value to my layer?
$con=mysqli_connect("localhost","xxxx","xxx") or die ('unable to connect server');
mysqli_select_db($con, "xxxxxxxx") or die ('cant connect database');

$x="INSERT INTO xxxxx (Layer, date ) VALUES ('$layer2', '$date') ";
$result=mysqli_query($con,$x) or die ('cant proceed query');


//i want to appear look like this on database:

LAYER       DATE
layer1      date1
layer2      date2
layer3      date3


say my data inputted from form is this one:

$_POST['layer']=layer1,layer2,layer3
$_POST['date']=date1,date2,date3
4

1 に答える 1

0
$con = mysqli_connect("localhost","xxxx","xxx", "xxxxxxxx");

$layer_arr = explode(",",$_POST['layer']);
$date_arr  = explode(",",$_POST['date']);

foreach ($layer_arr as $key => $layer )
{ 
    $date  = $date_arr[$key];
    $date  = mysqli_real_escape_string($con, $date);
    $layer = mysqli_real_escape_string($con, $layer);

    $sql   = "INSERT INTO xxxxx (Layer, date ) VALUES ('$layer', '$date') ";
    $result=mysqli_query($con,$x) or trigger_error(mysqli_error($con));
}

文字列を手動でフォーマットする代わりに、クエリでプレースホルダーを使用し、mysqli の代わりに PDO を使用する必要があることに注意してください。

于 2013-04-07T15:26:40.777 に答える