我一直在寻找如何将多个key-> value插入到mysql数据库中。 我可以插入单个对象,但不是在foreach循环中,我必须做错事。考虑到我知道我的java代码有效,因此我能够将单个对象存储在数据库的单表中,但它必须是我的php语法错误 - 即使我遵循教程。请帮我 这里是我的PHP代码,其中必须有错误将json关联数组插入到mysql
<?php
require_once 'db.php';
$json = file_get_contents('php://input');
$obj = json_decode($json,true);
$st = mysqli_prepare($con, 'INSERT INTO movies(title,year,genre,director) VALUES(?,?,?,?)');
mysqli_stmt_bind_param($st, 'sdss', $title, $year, $genre, $director);
foreach ($obj as $row){
$title = $obj['title'];
$year = $obj['year'];
$genre = $obj['genre'];
$director = $obj['director'];
mysqli_stmt_execute($st);
}
?>
我require_once“db_php”;连接到数据库,并从远程java应用程序获取数据。 这里是我的javacode - 刚刚离开了我的数据库的URL和方法创造
HttpURLConnection connection= null;
try {
URL obj = new URL(url2);
connection = (HttpURLConnection) obj.openConnection();
connection.setDoOutput(true);
connection.setDoInput(true);
connection.setRequestMethod("POST");
connection.setRequestProperty("Content-Type", "application/json; charset=UTF-8");
// connection.setRequestProperty("Accept", "application/json");
connection.connect();
OutputStreamWriter writer = new OutputStreamWriter(connection.getOutputStream());
JSONObject request = new JSONObject();
request.put("action","login");
request.put("title","The 40 year old virgin");
request.put("year","2004");
request.put("genre","Horror");
request.put("director","Takashi Shimizu");
String output =request.toString();
writer.write(output);
writer.flush();
writer.close();
InputStream input = connection.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(input));
StringBuilder result = new StringBuilder();
String line;
int responseCode = connection.getResponseCode();
System.out.println("ResponseCode: " + responseCode);
while ((line = reader.readLine()) != null) {
result.append(line);
}
System.out.println("result:" + result.toString());
}
catch (IOException e) {
} finally {
connection.disconnect();
}
}
这是我在IDE控制台得到的错误 - 蚀“:警告:mysqli_stmt_bind_param()预计参数1被mysqli_stmt”不过,我不知道如何处理它
嗨蛋车 它解决了我的问题,谢谢! 我得到了一个error_log值为“1”,我不知道它的含义,但你把我的注意力吸引到了$ st。删除整数参数“年”,解决了这个问题。我猜想'd'的值是错误的。 –
@MartinUtzon我很高兴它有帮助。我看到我把$ conn放在我的示例中,但是使用$ con可能会导致奇怪的错误日志输出,它应该是error_log(mysqli_error($ con));.但无论如何,很高兴它帮助你找到问题。 –