-2

XML からこれら 4 つの異なる属性を取得し、テーブル データに変換しようとしています。情報をフィードするループを設定しました。ただし、これを実行しようとすると、予期しない T_STRING という構文エラーが発生します。私は何が欠けていますか?

foreach ($xml->machine as $machine)
{
   "INSERT INTO 'table' (id, filePointer, amount, description) VALUES ('%s', '%s', '%s','%s')",
    mysql_real_escape_string('$machine->id'),
    mysql_real_escape_string('$machine->images->image->filePointer'),
    mysql_real_escape_string('$machine->advertised_price->amount'),
mysql_real_escape_string('$machine>description'))
}
4

5 に答える 5

1

おそらく、その文字列で実際に何もしていないためです。その文字列を割り当てたり、クエリとして送信したりせずに、PHP コードでその文字列を簡単に記述できます。ループの反復ごとに新しいクエリを実行する必要があるため、次のようなことを試してください。

$db = new mysqli(hostname, username, password, database);
foreach ($xml->machine as $machine)
{
    $db->query("INSERT INTO 'table' (id, filePointer, amount, description) VALUES ('%s', '%s','%s','%s')",
    $machine->id,
    $machine->images->image->filePointer,
    $machine->advertised_price->amount,
    $machine>description);

}

于 2013-06-13T18:48:50.573 に答える
1

これが mysqli でどのように見えるか見てみましょう....

$db = new mysqli(hostname, username, password, database);
$stmt = $db->prepare("INSERT INTO table (id, filePointer, amount, description) VALUES (?, ?, ?, ?)");
) 
foreach ($xml->machine as $machine) {
    $stmt->bind_param('ssss', $machine->id, $machine->images->image->filePointer, $machine->advertised_price->amount, $machine->description);
    // Execute the query
    $stmt->execute();

}
$stmt->close();
于 2013-06-13T19:13:04.237 に答える
0

これを試して...

foreach ($xml->machine as $machine)
{
 mysql_query("INSERT INTO 'table' (id, filePointer, amount, description) VALUES ('%s', '%s', '%s','%s')",
mysql_real_escape_string('$machine->id'),
mysql_real_escape_string('$machine->images->image->filePointer'),
mysql_real_escape_string('$machine->advertised_price->amount'),
mysql_real_escape_string('$machine->description'));

}
于 2013-06-13T18:44:10.137 に答える
0

mysql_queryあなたのものを入れるための関数への呼び出しがありませ"INSERT INTO ...ん。

于 2013-06-13T18:42:38.743 に答える