【问题标题】:posting from java to php and inserting it into mysql database从java发布到php并将其插入mysql数据库
【发布时间】:2013-04-19 06:07:40
【问题描述】:

我写了一篇从 java 到我的 php 后端的简单帖子。 运行脚本后,我得到了我在文件名、文件大小等中传递的输出。

int filesize=25;
String filetype=".txt";
String hash="sdfjksdfhljahe8wr897348957jsdfajlsdhfl48";
String email="sangwan.ritesh@yahoo.in";
String filename="songs.txt";
String urlParameters = "filename="+filename+"&filesize="+filesize+"&filetype="+filetype+"&filehash="+hash+"&email="+email;    
URL url = new URL("myurl");
HttpURLConnection hp=(HttpURLConnection)url.openConnection();
hp.setDoInput(true);
hp.setDoOutput(true);
hp.setInstanceFollowRedirects(false);
hp.setRequestMethod("POST");
hp.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); 
hp.setRequestProperty("charset", "utf-8");
hp.setRequestProperty("Content-Length", "" + Integer.toString(urlParameters.getBytes().length));
hp.setUseCaches (false);
DataOutputStream wr = new DataOutputStream(hp.getOutputStream ());
wr.writeBytes(urlParameters);
wr.flush();
String line;
BufferedReader reader = new BufferedReader(new InputStreamReader(hp.getInputStream()));
line = reader.readLine();
 System.out.println(line);
wr.close();
reader.close();
hp.disconnect();

问题是我想将这些值插入到我在服务器上运行的 mysql 数据库中,所以我编写了以下 php 代码。

<?php
include('dbc.php');
$filename=$_POST['filename'];
$filesize=$_POST['filesize'];
$filetype=$_POST['filetype'];
echo $POST['email'];
$filehash=$_POST['filehash'];
$email=$_POST['email'];
$query = "INSERT INTO files ( `email`, `file_name`, `file_ext`, `file_size`, 'file_hash') VALUES ( '$email', '$filename', '$filetype', '12584', 'filehash')";
$result=mysqli_query($dbc,$query);
if(mysqli_affected_rows($dbc) == 1)
{
  // DO Nothing
}
 echo $_POST['filehash'];
echo $_POST['email'];
echo $_POST['filename'];
echo $_POST['filesize'];
echo $_POST['filetype'];
?>

数据正在发布,我在我的 java 应用程序中得到了相同的结果,但数据没有被输入到 mysql 数据库中。我有一个具有上述相同列的表名文件。我试图从 mysql_error 得到错误,但我没有得到任何错误。

更新: 问题解决了使用 ' 而不是 file_hash 附近的 ` 的愚蠢 sql 语法错误

【问题讨论】:

  • 你检查过你的mysql语法吗?
  • 上面的语法是正确的,我没有收到任何错误
  • 做 echo $query 然后尝试在 db 上运行这个查询,写下发生了什么
  • 你能发布你用来创建文件表的创建语句吗?它可以帮助识别问题。
  • @RobertPodwika 这是执行 echo $query INSERT INTO 文件后的输出(emailfile_namefile_extfile_size、'file_hash')值('sangwan.ritesh@ yahoo.in', 'songs.txt', '.txt', '25', 'sdfjksdfhljahe8wr897348957jsdfajlsdhfl48') 在服务器 #1064 上运行此查询时出错 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以获取在 ''file_hash' 附近使用的正确语法)值('sangwan.ritesh@yahoo.in'、'songs.txt'、'.txt'、'25'、' sdf' 在第 1 行

标签: java php mysql


【解决方案1】:

在将变量输入数据库之前尝试检查它们。你确定它们不是空的吗?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-02-01
    • 2016-12-02
    • 2020-05-08
    • 1970-01-01
    • 1970-01-01
    • 2015-10-18
    • 2021-07-01
    • 1970-01-01
    相关资源
    最近更新 更多