PHP 错误无法从 Android 应用程序中检索 LIKE 语句

标签 php android mysql sql-like

我正在尝试使用 Android 应用程序搜索数据库,但是当我使用 SQL 语法“LIKE”搜索字符串元素时,

例如:

SELECT * FROM `test123` WHERE (`name` LIKE '%A%')

它会给我一个错误:

A JSONArray text must start with '[' at character 1 of ....

但是如果我搜索:

SELECT * FROM `test123`

它会很好地工作。

<?php

mysql_connect("website.com","root","password");
mysql_select_db("test123");

$q=mysql_query($_REQUEST['sql']);
while($e=mysql_fetch_assoc($q))
    $output[]=$e;

print(json_encode($output));

mysql_close();
?>

最佳答案

$output = array();
while ($e = mysql_fetch_assoc($q)) {
    $output[] = $e;
}

问题可能只是因为如果没有结果,$output 永远不会被定义。当您随后尝试 json_encode($output) 时,PHP 会抛出一条关于 $output 未定义的警告,这会导致最终输出如下:

PHP Notice:  Undefined variable: output in ...
null

这是无效的 JSON。即使您的警告被抑制,输出也只是 null,这不是 JSON 数组。如果您的客户需要一个数组,那么 null 会让它感到失望。

总是初始化你的变量。

关于PHP 错误无法从 Android 应用程序中检索 LIKE 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6936146/

相关文章:

php mysqli oops 概念连接

java - 如何激活ActiveMQ持久化来抵抗重启?

Android - 如何以编程方式获取 parentActivityName 属性值?

android - 全屏 Exoplayer

mysql - 无法在 jenkins 上创建 PoolableConnectionFactory

php - 模态弹出窗口不出现

.net - 使用 .NET 使用带有 bool 返回值的 PHP webservice 方法

android - 如何解决此错误 'com.google.ads.mediation.admob.AdMobAdapter cannot be cast to com.google.android.gms.ads.mediation.m '?

mysql - 如何返回商店评论大于或等于输入的所有商品 - Laravel 5.2

sql - 我可以 100% 依靠逻辑处理来知道哪些对象(列别名、表等)在后续查询子句中有 "available"吗?