2016-04-21 63 views
-2

mysqli select语句有点问题,因为我做了一个select语句,它实际上会计算结果的数量。但它不会返回我想要的值,但它不返回任何值。需要帮助的人。我没有使用的mysqli和PHP这个SELECT语句作为函数mysqli语句不能在php下工作

function count_result($data){ 
    global $con; 
    $sql = "SELECT count(user_id) as userssss from credentials where user_id = '$data'"; 
    $result = mysqli_query($con,$sql) or die('userssss'); 
    echo "string</br>"; 
    $row = mysqli_fetch_assoc($result,MYSQLI_ASSOC); 
    echo $row['userssss']."asdasd</br>"; 
    die("userssss"); 
    $return = $row['user']; 

    return $return; 
} 

结果


asdasd
userssss

它应该显示asdasd之前的结果

+0

检查'mysqli_query'和'mysqli_fetch_assoc'的结果。使用预先准备好的语句, – chris85

+0

'user'是一个保留字 – FuzzyTree

+0

我不想使用预备语句。只需要一个简单但易于理解的代码。我正在检查它,我认为mysqli_query和mysqli_fetch_assoc存在问题。除了准备好的声明之外的任何建议,即使除了用户使用其他单词,它仍然不会返回预期的输出。 – NewbieProggie

回答

0

我发现了。我傻了。

而不是使用副教授,必须使用阵列

function count_result($data){ 
    global $con; 
    $sql = "SELECT count(user_id) as userssss from credentials where user_id = '$data'"; 
    $result = mysqli_query($con,$sql) or die('userssss'); 
    $row = mysqli_fetch_array($result,MYSQLI_ASSOC); 
    $return = $row['user']; 

    return $return; 
} 
+0

这也是错误,我猜是主要问题'$ row ['usersss']',你已经用'$ row ['user']' – Nehal

0

添加全局$ CON;

function count_result($data){ 
    global $con; 
    $sql = "SELECT count(user_id) as user from credentials where user_id = '$data'"; 
    $result = mysqli_query($con,$sql); 
    $row = mysqli_fetch_assoc($result,MYSQLI_ASSOC); 
    echo $row['user'][0]."asdasd"; 
    die(); 
    $return = $row['user'][0]; 

    return $return; 
} 
+0

我更新了关于您的建议的帖子。 – NewbieProggie

0

一个愚蠢的错误在你的代码:

function count_result($data){ 
    global $con; 
    $sql = "SELECT count(user_id) as userssss from credentials where user_id = '$data'"; 
    $result = mysqli_query($con,$sql) or die('userssss'); 
    echo "string</br>"; 
    $row = mysqli_fetch_assoc($result,MYSQLI_ASSOC); 
    echo $row['user']."asdasd</br>"; // did changes on this line 
    die("userssss"); 
    $return = $row['user']; 

    return $return; 
} 
+1

替换了'请不要转发我的答案只是为了获得点。很明显,你正在这样做。 – NewbieProggie

+0

@NewbieProggie,我在你的代码中也提到过这个问题,你需要检查我在你的答案中提到的评论。由于这个错误,我发布了新的答案 – Nehal

0

你需要计算匹配where子句一切意味着行。也尝试采用准备好的语句。波纹管代码起作用。

<?php 
error_reporting(E_ALL); 
ini_set('display_errors', 1); 
function count_result($data){ 
$user = 'username'; 
$password = 'password'; 
$db = 'database'; 
$host = 'hostname'; 
$port = 3306; 

/* Attempt MySQL server connection. Assuming you are running MySQL server */ 

$link = mysqli_connect($host, $user, $password, $db); 

// Check connection 
if($link === false){ 
    die("ERROR: Could not connect. " . mysqli_connect_error()); 
} 

if($stmt = $link -> prepare("SELECT COUNT(*) FROM test WHERE ID= ?")) 
    { 
    /* Bind parameters, s - string, b - blob, i - int, etc */ 
    $stmt -> bind_param("i", $data); 
    $stmt -> execute(); 

    /* Bind results */ 
    $stmt -> bind_result($testfield1); 

    /* Fetch the value */ 
    $stmt -> fetch(); 
    $numberofrows = $stmt->num_rows; 

} else{ 
    echo "ERROR: Could not able to execute SQL. " . mysqli_error($link); 
} 

/* Close statement */ 
$stmt -> close(); 
echo '# rows: '. $numberofrows . PHP_EOL; 
echo 'Count = '. $testfield1 ; 

} 

count_result(24); 
?>