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


Get info from URL and mysql database in PHP

当我试图在之前的问题中发布时,我想知道如何从 php 中的 URL 和 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'])

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

您不是在比较 if 语句中的值,而是在分配它们尝试

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

if ($id == $id2)

此外,您正在为 $id 2 分配不正确的值,您要查找的是

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

请更正:

  1. $id2 = mysql_query($sql); 您需要处理来自 $id 2 数组的结果才能获得所需的变量。

  2. if ($id = $id2) {......和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 (相同) 它也检查类型。