0

PHPを使ってmysql dbに配列を挿入したい..

そして今、このコードでエラーが発生しました:

$insert_sql = sprintf("INSERT INTO detail_paket (id_paket, menu_paket) select
 paket.id,\'%s\' from paket where paket.nama_paket='$nama_paket'",%data1[$i]);
            ^
            |   
   here is the error syntax

data1は配列です。

\'%s\'を使用する正しい構文は何ですか?

クエリを実行しようとすると、エラー情報が表示されます:構文エラー、予期しない '%' または 構文エラー予期しない "" で *.

私はすでに \"%s\ と \"%s"\ と %s と '%s' と "%s" と \"%s\" を使用しようとしましたが、クエリはまだエラーを出します..

最後の質問です。この「%s」構文は何と呼ばれていますか?

ありがとう...

チュートリアルの元のクエリ

$insert_sql = sprintf("INSERT INTO student (first_name, last_name) VALUES(\"%s\",\"%s\")",
      $student_record[$i][0], $student_record[$i][1]);
4

2 に答える 2

1

周りの引用符を削除し、のプレフィックスを:に%変更します。%data1$

$insert_sql = sprintf("INSERT INTO detail_paket (id_paket, menu_paket) select paket.id,%s from paket where paket.nama_paket='$nama_paket'",$data1[$i]);

もう1つの問題は、2つのクエリを。で区切る必要があることです;。これはすべてのMySQLAPIで機能するわけではなく、すべてが複数のクエリを許可するわけではありません。1つの複数のクエリではなく、2つのクエリを実行する必要がある場合があります。

于 2012-11-27T08:36:00.610 に答える
0

この方法で行う必要がある場合は、「%s」を「{$ data1 [$ i]}」に置き換えて、sprintfを削除できます。プリペアドステートメントを使用する方が安全だと思いますがhttp://php.net/manual/en/pdo.prepared-statements.php

于 2012-11-27T08:42:46.123 に答える