php+select语句or,php – SQL select语句中的语法错误

我正在开发一款

Android应用.在我的应用程序中,AsyncTask向PHP发送一个字符串. PHP返回一组裁剪名称.

我的php文件是:

ini_set('default_charset', 'utf-8');

header('Content-Type: text/html; charset=UTF-8');

mysql_connect("localhost","root","");

mysql_select_db("farm_o_pedia");

mysql_set_charset('utf8');

$result1 = mysql_query("SET NAMES utf8");

$lang=$_POST['LanguageName'];

$query1="select lang_id from lang_selection where lang_name='$lang'";

$lang_id=mysql_query($query1) or die(mysql_error());

$query2="select crop_name from crop_master where lang_id=$lang_id";

$result2=mysql_query($query2) or die(mysql_error());

while($row=mysql_fetch_assoc($result2))

{

$output[]=$row;

}

print(json_encode($output));

mysql_close();

?>

我在Logcat中遇到这种错误:

02-16 22:08:04.216: I/HTTP ok(1251): org.apache.http.message.BasicHttpResponse@4052f0b8

02-16 22:08:04.216 : I/JsonObj(1251): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘id #4’ at line 1

我不知道我的语法有什么问题.

EDIT: Used PDO as suggested and its working fine:

This is my new script.

$db = new PDO('mysql:host=localhost;dbname=farm_o_pedia;charset=utf8', 'root', '');

$db->query("SET NAMES utf8");

$lang=$_POST['LanguageName'];

$query1="select crop_name from crop_master where lang_id=(select lang_id from lang_selection where lang_name='$lang')";

$result2=$db->query($query1);

while(($row=$result2->fetch(PDO::FETCH_ASSOC))!=false)

{

$output[]=$row;

}

print(json_encode($output));

$db=null;

?>

最佳答案 我不确定您的查询的语法,但我知道您最好使用一个查询而不是两个查询.像这样的东西:

select crop_name

from crop_master cm join lang_selection ls on cm.languageid = ls.languageid

where lang_name = '$lang'

如果你不熟悉加入表格,我听过这本书的好消息,在10分钟内自学SQL

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值