-3

我的数据库中有一个名为visitor_table. 在表中,我有一列名为visitor_affiliate. 我想在visitor_affiliate = "someurer".

我想将计数作为数字。我已经有了这段代码,但我不知道如何仅获取包含字符串的行的计数。我目前得到所有行的数量,

$result = mysql_query("SELECT * FROM visitor_table");   
$num_rows = mysql_num_rows($result);    
echo "$num_rows Rows\n";
4

4 回答 4

3
  1. 您可以要求 MySQL 返回计数:

    SELECT COUNT(*) FROM visitor_table WHERE visitor_affiliate = 'someurer'
    
  2. 您不应该使用古老的(自 PHP v5.5.0 起已弃用,很快将被完全删除)的 MySQL 扩展来编写新代码——改用改进的 MySQLi 扩展PDO 抽象层,这两者都可以让您传递变量以一种安全的、参数化的方式向数据库发送数据,以确保它们不会针对 SQL 进行评估(因此可以防止 SQL 注入攻击):

    $dbh = new PDO("mysql:dbname=$dbname", $username, $password);
    $dbh->setAttribute(PDO::ATTR_EMULATE_PREPARES, FALSE);
    $qry = $dbh->prepare('
      SELECT COUNT(*) FROM visitor_table WHERE visitor_affiliate = ?
    ');
    $qry->execute(['someurer']);
    echo $qry->fetchColumn(), ' rows';
    
于 2013-01-18T14:51:52.653 回答
1
$result = mysql_query("SELECT * FROM visitor_table WHERE `visitor_affiliate` = 'someurer'");
$num_rows = mysql_num_rows($result);
echo $num_rows . " Rows\n";
于 2013-01-18T14:48:54.557 回答
0

根据您提供的少量信息,请尝试以下操作-

$result = mysql_query("SELECT * FROM visitor_table Where visitor_affiliate like '%someurer%'");
$num_rows = mysql_num_rows($result);
echo "$num_rows Rows\n";
于 2013-01-18T14:49:52.300 回答
0

已弃用的 MySQL:

$res = mysql_query('SELECT * FROM visitor_table');
echo 'Number of rows:'.mysql_num_rows($res);

程序 MySQLi:

$tu = mysqli_prepare($DBH,'SELECT * FROM visitor_table');
mysqli_execute($tu);
$num_rows = mysqli_num_rows($tu);
echo $num_rows.' rows\n';

mysql 已被弃用。请使用 mysqli。使用 MySQLi bind_param 得到你的结果:

$someuser = 'Dave';
$DBH = mysqli_connect('localhost','user','pass','database');
$query = mysqli_prepare($DBH,'SELECT * FROM visitor_table WHERE user = ?');
mysqli_bind_param($query,'s',$someuser);
mysqli_execute($query);
mysqli_bind_result($id,$user,$tabCol1,$tabCol2);
while(mysqli_fetch_result){
    $row = $row +1;
    echo $user.': was found in the record with ID of: '.$id;
}
echo 'total records found:'.$row;

这是一种方法,因为我不能完全 100% 确定mysqli_num_row()在上面的查询中使用 a 。

于 2013-01-18T14:57:23.983 回答