我正在开发一款
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.
<?PHP $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; ?>
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。