短PHP代码不返回数据(return,true或false)

时间:2014-01-22 11:33:15

标签: php mysqli return

当我运行此代码时,一切正常:

<?php
$con = mysqli_connect ("", "", "", "") or die ($connect_error);

$username = 'tijmen';

$query = mysqli_query($con, "SELECT COUNT(*) FROM users WHERE username='$username'") or     die (mysqli_error());
$result = mysqli_fetch_row($query); 
echo $result[0];
?>

我的数据库中存在用户名'tijmen',因此echo返回'1'。

我接下来尝试的是:

$con = mysqli_connect ("", "", "", "") or die ($connect_error);

function user_exists($username) {
$query = mysqli_query($con, "SELECT COUNT(*) FROM users WHERE username='$username'") or die (mysqli_error());
$result = mysqli_fetch_row($query);  
return ($result[0] == 1) ? true : false;
}

if (user_exists('tijmen') === true) {
echo 'user exists';
}
else {
echo 'not found';
}

当我运行此代码时没有任何反应,我不知道为什么。任何人都可以帮我解决这个问题吗?

5 个答案:

答案 0 :(得分:1)

您的功能中没有$con

替换此行:

if (user_exists('tijmen') === true) {

by:

if (user_exists('tijmen',$con) === true) {

并在您的函数中:

function user_exists($username,$con) {
$query = mysqli_query($con, "SELECT COUNT(*) FROM users WHERE username='$username'") or die (mysqli_error());
$result = mysqli_fetch_row($query);  
return ($result[0] == 1) ? true : false;
}

答案 1 :(得分:1)

在较低的代码中,您忘记为查询声明变量:

添加$ username ='tijmen';在开始和完成时你的功能:

 function user_exists($username) {
      $username = 'tijmen';
      $query = mysqli_query($con, "SELECT COUNT(*) FROM users WHERE username='$username'")  or          die (mysqli_error());
      $result = mysqli_fetch_row($query);  
     return ($result[0] == 1) ? true : false;
    }

答案 2 :(得分:1)

function user_exists($username,$con) {
    $query = mysqli_query($con, "SELECT COUNT(*) FROM users WHERE username='$username'") or die (mysqli_error());
    $result = mysqli_fetch_row($query);  
     return ($result[0] == 1) ? true : false;
}

你必须将连接传递给函数,函数不知道在它之外定义的变量。

如果您运行代码,则应该收到错误。

答案 3 :(得分:1)

该函数无法看到变量$ con。试试这个

function user_exists($username) {
    global $con;
    $query = mysqli_query($con, "SELECT COUNT(*) FROM users WHERE username='$username'") or die (mysqli_error());
    $result = mysqli_fetch_row($query);  
    return ($result[0] == 1) ? true : false;
}

答案 4 :(得分:1)

这不是最好的做法,但你也可以使用$ con作为全局变量,通过声明你的函数:

全球$ con;

您可以在http://php.net/manual/en/language.variables.scope.php

上详细了解相关信息