Mysqli num行无效

时间:2016-04-17 10:15:42

标签: php

我有一个相当基本的脚本(我已经习惯了mysql,但我正在转向mysqli)

<?php
include("../includes/functions.php");
/////////////////////////////////////////////////////////////////////////
$debugMode = 1;
/////////////////////////////////////////////////////////////////////////
if (isset($_GET['u']))
{
    // database connection
    $c = mysqli_connect("localhost", "xxx", "xxx", "xxx");

    // initial query to check if the domain is already in the database
    $q = $c->query("SELECT * FROM `domains` WHERE `domain_name`='".trim($s[0])."'");
    $v = $q->fetch_assoc();
    $r = $q->num_rows;

    // check if the string exists in the database
    if ($r > 0)
    {
        // do not enter if greater than 0
    } else {        
        // vars
        $u = $_GET['u'];

        // DEBUG
        if ($debugMode)
        {
          $fp = fopen('u.txt', 'a');
          fwrite($fp, "$u" . "\n");
          fclose($fp);      
        }

        // do a split of "|"
        $s = explode("|", $u);

        // check alexa rank and update
        $alexa = alexa_rank($s[0]);

        // check connection
        if (mysqli_connect_errno())
        {
         echo mysqli_connect_error();
        } else {        
         // insert query if there is no errors
         $i = $c->query("INSERT INTO `domains` (`domain_id`,`domain_name`,`domain_pr`,`domain_alexa_rank`,`domain_moz_da`,`domain_moz_pa`,`domain_date`) VALUES ('','".$s[0]."','".$s[1]."','".$alexa."','".$s[2]."','".$s[3]."',NOW())"); 
        }   
    }   
} else {    
    header("Location: http://www.site.info/");
}
?>

看起来相当简单,问题是计数部分不起作用,它还在向数据库添加重复条目,我也尝试过:

mysqli_num_rows($q);

这似乎仍然不起作用,我错过了一些简单的东西吗?

谢谢你们

2 个答案:

答案 0 :(得分:0)

首先应该确定您的查询是正确的。

所以请调试你的代码;

$SQL = "SELECT * FROM `domains` WHERE domain_name`='".trim($s[0])."'";
echo "My Query: ". $SQL;
$q = $c->query($SQL);

我猜你的$ s变量有问题。如果您的sql查询是正确的,您可以检查$ v变量是否有任何记录,如果$ v变量是一个数组并且具有值,您有多个记录,如果没有,您可以传递插入语句。

答案 1 :(得分:0)

啊,谢谢你!我发现我的顶级查询失败了,因为我在代码中使用了爆炸!谢谢你们。