繁体   English   中英

在PHP中从URL和mysql数据库获取信息

[英]Get info from URL and mysql database in PHP

当我尝试在一个较早的问题中发帖时,我想知道如何从URL和php中的mySQL数据库获取数据,然后比较结果以及它们是否相等运行一个事件。 到目前为止,我已经有了这段代码,但是只要URL中有一个id,它似乎就可以工作。 它从不对照mysql数据库中的id进行检查。 有任何想法吗?

这是代码:

    <?php

$random = uniqid();

if ($id = $_GET['id']) {

$dbhandle = mysql_connect('host', 'user', 'password')
 or die("Unable to connect to MySQL");
$selected = mysql_select_db('a6675286_main',$dbhandle)
or die("Could not select database");

$sql = "SELECT completed FROM authentication WHERE username='admin'"; 
$id2 = mysql_query($sql);

}

if ($id = $id2) {
 mysql_query("UPDATE authentication SET completed = $random WHERE username = 'admin'");
 include 'sendmail.php';
echo "You win";
}
else {
header('Location: http://www.websites.com/');
}

?>
if ($id = $id2)

错了!

你需要

if ($id == $id2)

($id == $_GET['id'])

$ id2不是id,因为mysql_query返回结果集。 要在PHP中使用查询结果集,请查看mysql_fetch_assoc之类的结果函数。

您不是在比较if语句中的值,而是将它们分配给try

if($ id == $ _GET ['id'])

if ($id == $id2)

另外,您正在为$ id2分配错误的值,您正在寻找的是

$result = mysql_query($query);
$row = mysql_fetch_array($result);
$id2 = $row[0];

请纠正:

  1. $id2 = mysql_query($sql); 您需要处理$ id2数组中的结果以获取所需的变量。

  2. if ($id = $id2) { ... and if ($id = $_GET['id']) {使用==

$id不是数字。 这是一个mysql资源。

    <?php

$random = uniqid();

if ($id == $_GET['id']) { //<-------Check this double '=='

$dbhandle = mysql_connect('host', 'user', 'password')
 or die("Unable to connect to MySQL");
$selected = mysql_select_db('a6675286_main',$dbhandle)
or die("Could not select database");

$sql = "SELECT completed FROM authentication WHERE username='admin'"; 
$result = mysql_query($sql) or die(mysql_error()); //<------------ it is a mysql resource
$row = mysql_fetch_assos($result);
$id2 = $row['completed']; //<----- Now the value comes

}

if ($id == $id2) { //<-------Check this double '=='
 mysql_query("UPDATE authentication SET completed = $random WHERE username = 'admin'");
 include 'sendmail.php';
echo "You win";
}
else {
header('Location: http://www.websites.com/');
}

?>
  • “ =”正在分配运算符。 这意味着将左操作数设置为右侧表达式的值。

  • '=='和'==='是比较运算符。

    • x == y(等于)

    • x === y(相同)它也检查类型。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM