gpt4 book ai didi

php - 查询从 postman 和 phpmyadmin 运行,但不是从 android 运行

转载 作者:可可西里 更新时间:2023-11-01 06:50:50 30 4
gpt4 key购买 nike

情况

我正在使用 mysql 数据库。查询从 phpmyadmin 和 postman 运行

但是当我从 android 发送请求时(它返回零行)

我已经记录了从 android 发送的电子邮件是正确的并且适用于其他查询但不是这个

    public function isUserExists($email, $u_name) {
$stmt = $this->conn->prepare("select * from login where email_id = ?");
$stmt->bind_param("s",$email);
$stmt->execute();
$stmt->store_result();
$num_rows = $stmt->num_rows; //getting no of rows if exits
$stmt->close();
return $num_rows > 0;
}

问题

为什么这不起作用,即使正确的电子邮件是从 android 发送并在 php 中成功获取它

我们从 android 发送的电子邮件在所有其他查询和方法中都能完美运行

编辑我正在使用这个类来发送我的帖子请求

public class WebConnector {
String boundary = "-------------" + System.currentTimeMillis();
private static final String LINE_FEED = "\r\n";
private static final String TWO_HYPHENS = "--";




private StringBuilder url;
private String api_key;
private HashMap<String, String> params = new HashMap<>();
File file;

private int count = 0;
private DataOutputStream dos;
JSONObject postData;

public void addParams(String key , String value) {
params.put(key,value);
}
public WebConnector(StringBuilder url, String api_key)
{
this.url = url;
this.api_key = api_key;
this.postData = new JSONObject();
this.file = null;
}
public WebConnector(StringBuilder url, String api_key, JSONObject postData)
{
this.url = url;
this.api_key = api_key;
this.postData = postData;
this.file = null;
}


public WebConnector(StringBuilder url, String api_key, JSONObject postData, File image) {
super();
this.url = url;
this.postData = postData;
this.api_key = api_key;
this.file = image;

}


public String connectToMULTIPART_POST_service(String requestMethod) {
createServiceUrl();

System.out.println(">>>>>>>>>url : " + url);



String strResponse = "";
InputStream inputStream = null;
HttpURLConnection urlConnection = null;

try {
urlConnection = (HttpURLConnection) new URL(url.toString()).openConnection();
urlConnection.setRequestProperty("Content-Type", "application/json");
urlConnection.setRequestProperty("Connection", "close");
urlConnection.setRequestProperty("User-Agent", "Mozilla/5.0 ( compatible ) ");
urlConnection.setRequestProperty("Authorization", "" + api_key);

urlConnection.setRequestMethod(requestMethod);

if(requestMethod.equals("GET") || requestMethod.equals("DELETE"))
urlConnection.setDoOutput(false);
else {
urlConnection.setRequestProperty("Content-type", "multipart/form-data; boundary=" + boundary);
urlConnection.setDoOutput(true);

urlConnection.setDoInput(true);
urlConnection.setUseCaches(false);
urlConnection.setChunkedStreamingMode(1024);

dos = new DataOutputStream(urlConnection.getOutputStream());
Iterator<String> keys = postData.keys();
while (keys.hasNext()) {
try {
String id = String.valueOf(keys.next());
addFormField(id, postData.get(id).toString());
System.out.println(id + " : " + postData.get(id));
} catch (JSONException e) {
e.printStackTrace();
}
}
try {

dos.flush();
} catch (IOException e) {
e.printStackTrace();
}

if (file != null)
addFilePart("url", file);

build();
}
urlConnection.connect();
int statusCode = 0;
try {
urlConnection.connect();
statusCode = urlConnection.getResponseCode();
} catch (EOFException e1) {
if (count < 5) {
urlConnection.disconnect();
count++;
String temp = connectToMULTIPART_POST_service(requestMethod);
if (temp != null && !temp.equals("")) {
return temp;
}
}
} catch (IOException e) {
e.printStackTrace();
}
// 200 represents HTTP OK
if (statusCode >=400) {
inputStream = new BufferedInputStream(urlConnection.getErrorStream());
strResponse = readStream(inputStream);
} else {
System.out.println(urlConnection.getResponseMessage());
inputStream = new BufferedInputStream(urlConnection.getInputStream());
strResponse = readStream(inputStream);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (null != inputStream)
inputStream.close();
} catch (IOException e) {
}
}

return strResponse;
}


public void addFormField(String fieldName, String value) {
try {
dos.writeBytes(TWO_HYPHENS + boundary + LINE_FEED);
dos.writeBytes("Content-Disposition: form-data; name=\"" + fieldName + "\"" + LINE_FEED + LINE_FEED/*+ value + LINE_FEED*/);
/*dos.writeBytes("Content-Type: text/plain; charset=UTF-8" + LINE_FEED);*/
dos.writeBytes(value + LINE_FEED);
} catch (IOException e) {
e.printStackTrace();
}

}

public void addFilePart(String fieldName, File uploadFile) {
try {
dos.writeBytes(TWO_HYPHENS + boundary + LINE_FEED);
dos.writeBytes("Content-Disposition: form-data; name=\"" + fieldName + "\";filename=\"" + uploadFile.getName() + "\"" + LINE_FEED);
dos.writeBytes(LINE_FEED);

FileInputStream fStream = new FileInputStream(uploadFile);
int bufferSize = 1024;
byte[] buffer = new byte[bufferSize];
int length = -1;

while ((length = fStream.read(buffer)) != -1) {
dos.write(buffer, 0, length);
}
dos.writeBytes(LINE_FEED);
dos.writeBytes(TWO_HYPHENS + boundary + TWO_HYPHENS + LINE_FEED);
/* close streams */
fStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}

public void addHeaderField(String name, String value) {
try {
dos.writeBytes(name + ": " + value + LINE_FEED);
} catch (IOException e) {
e.printStackTrace();
}

}

public void build() {
try {
dos.writeBytes(LINE_FEED);
dos.flush();
dos.close();
} catch (IOException e) {
e.printStackTrace();
}
}

private static String readStream(InputStream in) {
StringBuilder sb = new StringBuilder();
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
String nextLine = "";
while ((nextLine = reader.readLine()) != null) {
sb.append(nextLine);
}
/* Close Stream */
if (null != in) {
in.close();
}
} catch (IOException e) {
e.printStackTrace();
}

return sb.toString();
}

private void createServiceUrl() {
if (null == params) {
return;
}
final Iterator<Map.Entry<String, String>> it = params.entrySet().iterator();
boolean isParam = false;
while (it.hasNext()) {
final Map.Entry<String, String> mapEnt = (Map.Entry<String, String>) it.next();
url.append(mapEnt.getKey());
url.append("=");
try {
url.append(URLEncoder.encode(mapEnt.getValue(), "UTF-8"));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (NullPointerException e) {
e.printStackTrace();
}
url.append("&");//%20
isParam = true;
}
if (isParam) {
url.deleteCharAt(url.length() - 1);
}
}
//localhost/LumnuOirtal/event?event=1&descip=wdsdsdsd&

}

最佳答案

我认为问题出在“bindParam”语句中。你的声明说要替换“s”而不是“?”。试试这个:

$stmt = $this->conn->prepare("select * from login where email_id = ?");
$stmt->bind_param("?",$email);

$stmt = $this->conn->prepare("select * from login where email_id = :email");
$stmt->bind_param(":email",$email);

关于php - 查询从 postman 和 phpmyadmin 运行,但不是从 android 运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38849604/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com