PHP检查数据库中是否存在某些内容

时间:2011-12-25 01:45:04

标签: php mysql

我正在创建一个iOS应用程序,它将用户名字符串发送到此PHP文件,然后PHP文件检查其用户名是否存在于数据库中,名为“members”的表中。我在网上得到了这个代码,并根据我的需要进行了一些修改。这是代码:

// Main method to redeem a code
function redeem() {

    // Check for required parameters
    if (isset($_POST["username"])) {

        // Put parameters into local variables
        $code = $_POST["username"];

        echo $code;

        // Look up code in database
        $user_id = 0;

        echo "userid";

        $stmt = $this->db->prepare('SELECT username FROM members WHERE username=', $code); 

        echo "dbprepare";

       $stmt->bind_param("is", $code);

        echo "bindparam";

        $stmt->execute();

        echo "execute";

        $stmt->bind_result($id, $code);

        echo "bindresult";

        while ($stmt->fetch()) {
            break;
        }
        $stmt->close();

代码在bind_param上绊倒,只有echo "dbprepare"。我做错了什么吗?如何检查用户名?

3 个答案:

答案 0 :(得分:3)

试试这段代码

   $stmt = $this->db->prepare('SELECT username FROM members WHERE username=?');  

    echo "dbprepare"; 

   $stmt->bind_param("s", $code);

答案 1 :(得分:3)

我猜你确实错过了一个实际的占位符:

$stmt = $this->db->prepare('SELECT username FROM members WHERE username=?', $code); 

查看已添加的?。准备调用不仅仅附加值。 你需要告诉它它属于哪里。 (如果你的类在mysqli或PDO中实现prepare / bind,并且通常被理解。)

答案 2 :(得分:1)

您忘了在SQL中添加?

$stmt = $this->db->prepare('SELECT username FROM members WHERE username=?', $code); 

echo "dbprepare";

$stmt->bind_param("is", $code);