0

在 php 和 mysql/mysqli 方面,我是个新手。我有这段代码,我得到一个 PHP Parse 错误:语法错误,第 17 行 /home/byeroman/public_html/register.php 中的意外 T_OBJECT_OPERATOR。这是代码:

$stmt = mysqli->prepare("SELECT COUNT(*) FROM users WHERE username=? LIMIT 1" or die($db->error()));
        $stmt->bind_param("s", $username);
    $stmt->execute();
    $stmt->store_result();
        $count=$stmt->num_rows;
        $stmt->close();
        if($count>0) exit();

怎么了?多谢你们

4

1 回答 1

1

这是愚蠢的语法问题,您只是忘记了右括号。
为了减少这样的事情发生并且使您的代码可读,请将您的语句分成单独的行:

$sql  = "SELECT COUNT(*) FROM users WHERE username=? LIMIT 1";
$stmt = $mysqli->prepare($sql) or trigger_error($mysqli->error()));

您还需要确定您正在使用哪个变量($mysqli 或 $db)
此外,num_rows()使用的函数是错误的,您需要使用常规函数fetch

顺便说一下,考虑使用一些数据库抽象库。它可以让你的生活更轻松,代码更短,就像这样(它取代了你所有的代码,请注意):

$num = $db->getOne("SELECT COUNT(*) FROM users WHERE username=?",$username);
if($num) { ... 
于 2013-01-30T18:32:46.567 回答