我想使用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]);
答案 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
更安全