2013-03-22 64 views
0

发生奇怪的错误,表示我在运行mysqli_num_rows查询时未连接到数据库。这里是代码:在Num_Rows中未选择数据库

<?php include("php/functions.php"); ?> 
<?php 
if(isset($_GET['verification']) && !empty($_GET['verification'])){ 
    // Verify data 
    $hash = mysqli_real_escape_string($con, $_GET['verification']); // Set hash variable 

    $search_sql = "SELECT 'hash', active FROM members WHERE hash='".$verification."' AND active='0'"; 
    $search_res = mysqli_query($con, $search_sql); 
    $match = mysqli_num_rows($search_res); 

任何想法为什么这不工作?

+0

你的$ con包含什么? – user7282 2013-03-22 12:12:49

+6

为什么你关闭你的php标签?当代码似乎继续在PHP中。 – Rikesh 2013-03-22 12:13:25

+0

分享functions.php文件 – 2013-03-22 12:14:04

回答

0

<?php include('functions.php'); ?>

此外,还要确保你在正确的地方您的交易?>标签。

0

只是尽量做到包括( “的functions.php”).. 我认为是你的问题

+0

对不起,忽略包含文件扩展 – user2184018 2013-03-22 12:17:48

0
<?php 
    include("functions.php"); //includes databse connection 
    $search_sql = "SELECT hash, active FROM members WHERE hash='".$verification."' AND active='0'"; 
    $search_res = mysqli_query($con, $search_sql); 
    $match  = mysqli_num_rows($search_res); 
?> 

include("functions");include("functions.php"); ???你忘了.php

0

你忘了添加文件扩展名。

<?php include("functions.php"); ?> 

MySQL把`

各地hash为保留字。

0

请尝试下面的代码:

<?php 
    include("functions.php"); //includes databse connection php file 
    $search_sql = "SELECT hash, active FROM members WHERE hash='".$verification."' AND active='0'"; 
    $search_res = mysqli_query($con, $search_sql); 
    $match  = mysqli_num_rows($search_res); 
?> 

包括应具有.php文件作为参数。请检查一下。

+0

不,这不是一个错误 - 我编辑了我的问题,并添加了完整的代码 - 我知道PHP的功能正在工作 – user2184018 2013-03-22 12:27:55

1

我在您的代码中更改了几件事情,请查看。

如果您使用的是mysqli类,那么任何类instatiation之后应该是这个样子:使用对象操作->

$con = new mysqli($DB_HOST, $DB_USER, $DB_PASS, $DB_NAME); 
$con->exampleClassFunction() 

为了得到num_rows你的对象运营商将查询变量之后,像这样:

$search_res = $con->mysqli_query($con, $search_sql); 
$match = $search_res->mysqli_num_rows($search_res); 

我还加了反引号中查询所有适用的列名:

SELECT `hash`, `active` FROM members WHERE `hash`='".$verification."' AND `active`='0' 

这里是你的代码示例:

//include("php/functions.php"); 

$DB_NAME = 'DATABASE_NAME'; 
$DB_HOST = 'DATABASE_HOST'; 
$DB_USER = 'DATABASE_USER'; 
$DB_PASS = 'DATABASE_PASSWORD'; 

$con = new mysqli($DB_HOST, $DB_USER, $DB_PASS, $DB_NAME); 

// Added a connection error check before continuing 
if (mysqli_connect_errno()) { 
    printf("Connect failed: %s\n", mysqli_connect_error()); 
    exit(); 
} 

if(isset($_GET['verification']) && !empty($_GET['verification'])){ 
    $hash = $con->mysqli_real_escape_string($con, $_GET['verification']); 

    // Use back ticks on query column names, 
    // use single quotes for comparative operations 
    $search_sql = "SELECT `hash`, `active` FROM members WHERE `hash` = '".$verification."' AND `active` = '0'"; 

    $search_res = $con->mysqli_query($con, $search_sql); 
    $match = $search_res->mysqli_num_rows($search_res); 
}