Php 我想不出这个mysql到mysqli的变化

Php 我想不出这个mysql到mysqli的变化,php,mysql,mysqli,Php,Mysql,Mysqli,嗨,我还在尝试改用mysqli,我只是有时候能让事情顺利进行。 我所拥有的最大的东西是mysqli_结果,我尝试了其他人所做的,但似乎不起作用。 代码如下: $result = mysqli_query($con, "SELECT referer FROM users WHERE userId = '$key'"); if(mysql_result($result, 0) != "" ){ $referer = mysql_result($result, 0); $result

嗨,我还在尝试改用mysqli,我只是有时候能让事情顺利进行。 我所拥有的最大的东西是mysqli_结果,我尝试了其他人所做的,但似乎不起作用。 代码如下:

$result = mysqli_query($con, "SELECT referer FROM users WHERE userId = '$key'");
if(mysql_result($result, 0) != "" ){
    $referer = mysql_result($result, 0);
    $result = mysqli_query($con, "SELECT referer FROM users WHERE userId = $referer'");
    if(mysql_result($result, 0) != "" ){
        $result2 = mysqli_query($con, "SELECT refered FROM users WHERE userId = $referer'");
        $newRefs = mysql_result($result2, 0) + 1;
        mysqli_query($con, "UPDATE users SET refered = '$newRefs' WHERE userId = '$referer'");
        $result3 = mysqli_query($con, "SELECT userName FROM users WHERE userId = '$key'");
        $refered = mysql_result($result3, 0);
    }
}
我们将不胜感激

问候
Chad

您不能使用mysql\u结果! 试着这样做:

$result = mysqli_query($con, "SELECT referer FROM users WHERE userId = '$key'");
if( mysqli_num_rows($result, 0) ) {
    list($referer) = mysqli_fetch_row($result);
....
您可以使用面向对象的样式:

$Result = $Con->query("SELECT referer FROM users WHERE userId = '$key'");
if( $Result->num_rows ) {
    list($referer) = $Result->fetch_row();

如果您正在切换,那么应该直接转到PDO,而不是mysqli


您不能将
mysql\u
mysqli\u
这样的功能混合使用。而且,
mysql\u结果
是严肃的老派。mysqli的
mysqli
中没有等价物(这是一件好事)。我切换到,它接受您的查询并返回一个以字段名为键的关联数组。为了一致性,我把它全部程序化(我讨厌把OOP和程序化混为一谈)。我应该注意到,您的代码在编写时非常复杂(例如,
$key
在任何地方都没有定义)。最好避免重用名为的变量。我还强烈建议切换到全对象代码库

$result = mysqli_query($con, "SELECT referer FROM users WHERE userId = '$key'");
if($row = mysqli_fetch_assoc($result)){
    $result2 = mysqli_query($con, "SELECT referer FROM users WHERE userId = '" . $row['referer'] . "'");
    if($row2 = mysqli_fetch_assoc($result2)){
        $result3 = mysqli_query($con, "SELECT refered FROM users WHERE userId = '" . $row2['referer'] . "'");
        $newRefs = mysqli_fetch_assoc($result3);
        mysqli_query($con, "UPDATE users SET refered = '" . $newRefs['refered'] . "' WHERE userId = '" . $row['referer'] . "'");
        $result4 = mysqli_query($con, "SELECT userName FROM users WHERE userId = '$key'");
        $refered = mysqli_fetch_assoc($result4);
    }
}

当我尝试该代码时,会出现以下错误:警告:mysqli_fetch_assoc()希望参数1是mysqli_result,布尔值在第45行的/home3/clfarmer/public_html/confirm.php中给出;这是行$newRefs=mysqli\u fetch\u assoc($result3);添加了丢失的
i
和另一个导致查询失败的空格。现在试试