基本PHP SQL-从URL查询多个内容
所以,我想在url上使用两个参数从我的服务器查询,但我无法做到这一点 url是:localhost/database/getTable?sLang=English&sId=1 php脚本是:基本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(
<?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'])