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\'的正确语法是什么?

当我尝试运行查询时,错误信息显示:语法错误、意外的 '%' in 语法错误意外的“” in*。

我已经尝试使用 \"%s\ and \"%s"\ and %s and '%s' and "%s" and \"%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]);

另一个问题是您需要用;. 这不适用于所有 MySQL API,并非所有 API 都允许多个查询。您可能需要运行两个查询而不是单个多个查询。

于 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 回答