【问题标题】:Comparing database stringvalue with new stringvalue将数据库字符串值与新字符串值进行比较
【发布时间】:2012-02-27 10:48:11
【问题描述】:

这是我正在尝试做的事情:当用户将联系人添加到他的列表时,此联系人的号码会与数据库中的号码一起运行,如果用户已经在数据库中,它会给出反馈.现在,即使他不在,我总是会返回“用户在数据库中”。再说一次,我对 php 不太熟悉。我又改了一点代码,现在根本不行,因为它不喜欢这部分

$number = ($_GET["number"] from $DB_Table);

完整代码

<?php
$DB_HostName = "localhost";
$DB_Name = "db";
$DB_User = "user";
$DB_Pass = "pw";
$DB_Table = "contacts";

$number = ($_GET["number"] from $DB_Table);

$fnumber = ($_GET["fnumber"]);

if ($number == $fnumber) {
    echo "This user is already in database";
} else {
echo "This user isn't in the database"; 
}

$con = mysql_connect($DB_HostName,$DB_User,$DB_Pass) or die    (mysql_error()); 
mysql_select_db($DB_Name,$con) or die(mysql_error()); 

mysql_close($con);
?>

【问题讨论】:

  • 你不认为在连接到数据库之前你也在执行错误的查询吗?

标签: php database compare contacts


【解决方案1】:

我实际上没有看到您执行数据库查询。你可以这样做:

<?php

    $DB_HostName = "localhost";
    $DB_Name = "db";
    $DB_User = "user";
    $DB_Pass = "pw";
    $DB_Table = "contacts";

    $con = mysql_connect($DB_HostName,$DB_User,$DB_Pass) or die (mysql_error()); 
    mysql_select_db($DB_Name,$con) or die(mysql_error()); 

    $fnumber = mysql_real_escape_string($_GET["fnumber"]);

    $result = mysql_query("SELECT * FROM $DB_Table WHERE Something = '$fnumber'", $con);

    if ($result) {
        // Check the number of rows in the result set
        if (mysql_num_rows($result) > 0) {
            echo "This user is already in database";
        }

        else echo "This user isn't in the database";
    }

    mysql_close($con);

?>

【讨论】:

  • 非常感谢您的代码,但奇怪的是,它给出了以下错误警告:mysql_real_escape_string() [function.mysql-real-escape-string]: A link to the server could未在第 9 行的 /myserver/usercheck.php 中建立 - 第 9 行是 $fnumber = mysql_real_escape_string($_GET["fnumber"]);没有它,连接会起作用,但会破坏整个目的。
  • 我很抱歉,这是我的一个错误。您需要将该行移到初始化数据库连接的位置下方。我已经在上面的代码中更正了这一点。
【解决方案2】:

这不是有效的 PHP 代码:$number = ($_GET["number"] from $DB_Table);

$_GET["number"] 表示您在页面 url 中找到的“number”参数的值。

例如:http://example.com/index.php?number=7 所以$_GET["number"] 是 7。

在您的代码中,$DB_Table 只是一个字符串(“contact”),而“from”不适合使用 php 语法。

mysql_select_db($DB_Name,$con) or die(mysql_error()); 

是有效的 PHP,但您没有对从数据库中获得的内容做任何事情。我建议你至少看看这个教程php mysql select

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多