【发布时间】:2019-12-25 13:53:05
【问题描述】:
我正在构建一个使用 mysql 数据库作为后端的 android 应用程序。我正在尝试使用关键字搜索表和多列,并使用 php 以 json 格式将它们返回到 android 应用程序。
我尝试了从this question 获得的示例代码,但它似乎不起作用。
这是我的 php 代码
<?php
require "conn.php";
$key = $_POST["key"];
$array = array();
$mysql_query = "(SELECT *, 'home' AS type FROM home WHERE food_name LIKE '%" . $key . "%' OR descrip LIKE '%" . $key ."%' OR user_name LIKE '%" . $key ."%'
UNION
SELECT *, 'c4c' AS type FROM cook4cash WHERE food_name LIKE '%" . $key . "%' OR descrip LIKE '%" . $key ."%' OR user_name LIKE '%" . $key ."%'
UNION
SELECT *, 'vendor' AS type FROM vendors_info WHERE user_name LIKE '%" . $key . "%'
UNION
SELECT *, 'customer' AS type FROM customers_info WHERE user_name LIKE '%" . $key . "%')";
mysql_query($query);
$result = mysqli_query($conn, $mysql_query);
if(mysqli_num_rows($result) > 0){
session_start();
while($row = mysqli_fetch_assoc($result)){
$array[] = $row;
//echo json_encode($row);
}
foreach($array as $new_array){
$new_array['id'] . '<br/>';
$new_array['food_name'] . '<br/>';
$new_array['descrip'] . '<br/>';
$new_array['price'] . '<br/>';
$new_array['quantity'] . '<br/>';
$new_array['image_url'] . '<br/>';
$new_array['user_name'] . '<br/>';
$new_array['profile_pic'] . '<br/>';
$new_array['delivery_time'] . '<br/>';
$new_array['delivery_cost'] . '<br/>';
$new_array['location'] . '<br/>';
$new_array['email'] . '<br/>';
}
echo json_encode(array("userInfo" => $array));
} else {
echo "No data was found";
}
?>
当我使用邮递员进行测试时,它给出了错误代码 500(内部服务器错误)。 我想知道这段代码有什么问题。
【问题讨论】:
-
这是一个很好的例子,SO 是如何伤害 PHP 社区的。您链接到的问题是 8 岁。那里的答案仅用于历史目的,不适用于现代 PHP。此外,它们容易受到 SQL 注入的攻击。
-
请问这行是什么意思,mysql_query($query);就在原始查询之后?
-
@MuhammedShihabudeenLabbaA 我认为这是导致内部服务器错误的行。我把它拿出来,现在它返回状态码200。非常感谢。
-
值得一看比较...stackoverflow.com/q/23428273/2943403