使用\“%s \ error MYSQL PHP插入值

时间:2012-11-27 08:28:48

标签: php mysql insert

我想使用php将数组插入mysql数据库..

现在我收到此代码的错误:

$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]);

2 个答案:

答案 0 :(得分:1)

删除%周围的引号,并将%的{​​{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,并非所有MySQL API都允许多个查询。您可能需要运行两个查询而不是一个多个查询。

答案 1 :(得分:0)

如果你必须这样做,你可以用'{$ data1 [$ i]}'替换'%s'并摆脱sprintf。虽然我认为使用预准备语句http://php.net/manual/en/pdo.prepared-statements.php

更安全