Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
基本PHP SQL-从URL查询多个内容_Php_Android_Mysql - Fatal编程技术网

基本PHP SQL-从URL查询多个内容

基本PHP SQL-从URL查询多个内容,php,android,mysql,Php,Android,Mysql,所以,我想在url上使用两个参数从我的服务器查询,但我无法做到这一点 url是:localhost/database/getTable?sLang=English&sId=1 php脚本是: <?php if(isset($_REQUEST['sLang'])) if(isset($_REQUEST['sId'])) { $con = mysql_connect("blabla","blablabla","blablabla"); mysql_query(

所以,我想在url上使用两个参数从我的服务器查询,但我无法做到这一点

url是:localhost/database/getTable?sLang=English&sId=1

php脚本是:

<?php



if(isset($_REQUEST['sLang']))
if(isset($_REQUEST['sId'])) 
    {

    $con = mysql_connect("blabla","blablabla","blablabla");
    mysql_query("SET NAMES UTF8");
        if (!$con)
            {
            die('Could not connect: ' . mysql_error());
            }
        mysql_select_db("database", $con);

        $sLang = $_REQUEST['sLang']; //valor customer ID = valor requisitado
        SdID = $_REQUEST['sID']
        $result = mysql_query("SELECT * FROM table WHERE language = '$sLang' AND id = '$sId" ) or die('Errant Query:'); //escolher da tabela comments onde valor da coluna id = Valor reuisitado

        while($row = mysql_fetch_assoc($result))
            {
        $output[]=$row;
            }

        header('content-type: application/json; charset=utf-8');

        print(json_encode($output, JSON_UNESCAPED_UNICODE));

        mysql_close($con);

        }
        else
        {
        $output = "not found";
        print(json_encode($output));
        }


?>
我只是将俚语值和url更改返回到:localhost/database/getTable?sLang=English

如何使用两个参数sLang和sId查询数据库

致以最诚挚的问候

SdID=$\u请求['sID']缺少$和分号

另外,SdID有一个输入错误

最有可能读作

$sId = $_REQUEST['sID'];
与和id='$sId一起使用的

另外,和id='$sId需要一个引号,id='$sId'或删除错误的引号

SdID目前正在评估为一种新的解决方案

我注意到的另一件事是SELECT*FROM table中的单词table,其中

提示:如果这是DB表的实际名称,则需要将其包装为反勾号:

("SELECT * FROM `table` WHERE ...
这张桌子是一张桌子。 此外,不是:

if(isset($_REQUEST['sLang']))
if(isset($_REQUEST['sId'])) 
最好使用

if(isset($_REQUEST['sLang']) && isset($_REQUEST['sId']))

 {

 // code

 }

如果这是您最初发布的实际代码,那么您应该在之后对其进行编辑

旁注:一定要认真对待你问题下面的评论。
1输入错误:SdID=$\u请求['sID']SdID应为$sID

$sID = $_REQUEST['sID']

2编码方法:代替嵌套IF语句,考虑使用

if(isset($_REQUEST['sLang']) && isset($_REQUEST['sId']))
3避免SQL插入:将GET或POST值加载到变量中时,应去掉不必要的字符或对字符串进行编码,以避免SQL插入攻击:

$sLang = preg_replace("/[^a-zA-Z0-9]+/", "", $_REQUEST['sLang'])

这将除去除a-Z和0-9之外的任何内容,这样您的代码就不会被用来违反不可避免的SQL查询。

永远不要使用$\u请求来提取数据。你留下了巨大的安全漏洞。在这种情况下,请使用$\u GET。删除mysql\u queryuse$\u GET中$sId中的单引号,以检索通过URL参数传递的值。但要确保你能逃脱/消毒它们!关键工作:SQL注入
$sLang = preg_replace("/[^a-zA-Z0-9]+/", "", $_REQUEST['sLang'])