5

$matstring更新:エコー出力について言及するのを忘れていました'65.70', 'Coles','34 days','14'-正しい構文のように見えるのはどれですか?

私はphp/mysqlの初心者で、これはかなり基本的なことだと思いますが、このトピックに関する他のstackoverflowの質問をすべて読み、コードのさまざまなバージョンを数時間いじっていると、自分が何をしているのか理解できません違う。ヘルプ/提案をいただければ幸いです。

目的: php 配列 ( $matrix) から mysql テーブルにデータを渡す

$matrix[1]=
( [0] => 65.70 [1] => Coles [2] => 34 days [3] => 14 )

$matrix[2]=
( [0] => 62.70 [1] => Coles [2] => 13 days [3] => 14 )

$matrix[3]=
( [0] => 12.70 [1] => Safeway [2] => 43 days [3] => 14 )

コード:

$matstring=implode("','",$matrix[1]);
$matstring="'".$matstring."'";
mysql_query('INSERT INTO Australia (Price, Company, Days, Weight) VALUES ('$matstring')');
4

8 に答える 8

2

このコードを実行すると:

$matrix = array();
$matrix[1] = array( 0 => 65.70, 1 => 'Coles', 2 => '34 days', 3 => 14 );
$matstring=implode("','",$matrix[1]);
$matstring="'".$matstring."'";
print "INSERT INTO Australia (`Price`, `Company`, `Days`, `Weight`) VALUES ($matstring)";

結果になります:

INSERT INTO Australia (`Price`, `Company`, `Days`, `Weight`) VALUES ('65.7','Coles','34 days','14')
于 2013-02-24T21:25:03.500 に答える
1

修正されたコード:

$matstring=implode("','",$matrix[1]);

mysql_query("INSERT INTO Australia (Price, Company, Days, Weight) VALUES ('$matstring')");

(つまり、元のコードから 2 行目を削除し、mysql_query の引数を二重引用符で囲みます)

user1847757 の助けに感謝します - 彼が指摘したように、$matstringそれ自体は正しかったのですが、内部の一重引用符が、元のコードの 2 行VALUES(' ') 目に追加された一重引用符に結合されていたため、$matstringVALUES(''65.70','Coles','34 days','14'')

あなたの助けと提案をありがとう

于 2013-02-25T19:03:05.873 に答える
0

クエリを間違って作成しています。次のようになります。

INSERT INTO ... VALUES (''65.70,Coles,34 days,14'');

4つの値すべてがSINGLE文字列内にあることに注意してください..しかし、文字列も間違っています( '')。

配列の個々の値を引用符で囲む必要があります。

('65.70', 'Coles', '34 days', '14')

あなたはそれを内破し、あなたに与えます

INSERT INTO ... VALUES ('65.70', 'Coles', etc...)
于 2013-02-24T20:56:27.640 に答える
0

今日も同様の問題に直面し、次のように解決しました。私の場合$bank_info、新しい行として挿入するデータを保持する配列です...

$sql = "INSERT INTO user_bank_info (user_id,
                                    name,
                                    address,
                                    ZIP,
                                    city,
                                    state,
                                    country,
                                    wat_id,
                                    bank_bic,
                                    account_iban)
        VALUES  ('$id_user',
                 '{$bank_info['name']}',
                 '{$bank_info['addr']}',
                 '{$bank_info['zipn']}',
                 '{$bank_info['city']}',
                 '{$bank_info['stat']}',
                 '{$bank_info['ctry']}',
                 '{$bank_info['watn']}',
                 '{$bank_info['bbic']}',
                 '{$bank_info['iban']}')";
于 2013-09-06T14:09:10.323 に答える
0

配列データをテーブルに追加するには、シリアライズ関数を使用します。元-

$array["a"] = "Foo";
$array["b"] = "Bar";
$array["c"] = "Baz";
$array["d"] = "Wom";
$str = serialize($array);

追加$str into tableします。データを取得したら、unserialize function.Ex-を使用します。$arr = unserialize(urldecode($strenc));

注: URL には、urldecode関数を使用します。

于 2014-12-22T07:10:35.903 に答える
0

これが私がそれを行う方法です(非常に簡単です):

//Fetch the original array:

$query = mysql_query("SELECT * FROM Original_Table") or die(mysql_error());

while($record = mysql_fetch_array($query)){

$num=count($record); //Count The Number Of elements in the array

$num=$num/2; //use this if the array has both key numbers AND names

$cnum=0;

for($cnum;$cnum<$num;$cnum++){ //cycle through the elements of the array

$entry=$entry."'".$record[$cnum]."',";

}

$entry=substr($entry,0,strlen($entry)-1);// this just removes the final comma

// Now we can add the entry into the new table:

mysql_query("insert into New Table (Field1, Field2,Field3.....etc) values($entry)")or die(mysql_error());

}//end while
于 2015-10-20T16:02:18.250 に答える
0
mysql_query("INSERT INTO Australia (`Price`, `Company`, `Days`, `Weight`) VALUES ($matstring)");
于 2013-02-24T21:00:37.807 に答える