mysqli语句在php下不工作

mysqli语句在php下不工作,php,mysql,mysqli,Php,Mysql,Mysqli,mysqli select语句有一点问题,因为我做了一个select语句,它实际计算结果的数量。但是它不返回我想要的值,而是不返回任何值。需要帮助,伙计们。我使用mysqli和php将这个select语句作为函数来执行 function count_result($data){ global $con; $sql = "SELECT count(user_id) as userssss from credentials where user_id = '$data'";

mysqli select语句有一点问题,因为我做了一个select语句,它实际计算结果的数量。但是它不返回我想要的值,而是不返回任何值。需要帮助,伙计们。我使用mysqli和php将这个select语句作为函数来执行

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;
}
函数计数\u结果($data){
全球$con;
$sql=“从凭证中选择count(user_id)作为userssss,其中user_id='$data';
$result=mysqli_query($con,$sql)或die('userssss');
回显“字符串”
; $row=mysqli\u fetch\u assoc($result,mysqli\u assoc); echo$row['usersss']“asdasd
”; 死亡(“用户”); $return=$row['user']; return$return; }
结果

字符串
asdasd
用户

它应该在asdasd之前显示结果

添加全局$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;
}

我找到了。我真傻

必须使用数组而不是assoc

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;
}

代码中的一个愚蠢错误:

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;
}
函数计数\u结果($data){
全球$con;
$sql=“从凭证中选择count(user_id)作为userssss,其中user_id='$data';
$result=mysqli_query($con,$sql)或die('userssss');
回显“字符串”
; $row=mysqli\u fetch\u assoc($result,mysqli\u assoc); echo$row['user']”asdasd
“;//这一行是否有更改 死亡(“用户”); $return=$row['user']; return$return; }
您需要计算所有匹配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);
?>


检查
mysqli\u查询的结果
mysqli\u fetch\u assoc
。使用准备好的语句,
user
是保留字我不想使用准备好的语句。只需要一个简单易懂的代码。我正在检查它,我认为mysqli_query和mysqli_fetch_assoc中存在问题。除了准备好的语句之外的任何建议,即使我使用除user之外的其他单词,它仍然不会返回预期的输出。在mysqli_query($con,$sql)之后使用
或die()
语句获取错误,并且
user
是一个关键字,因此请将其用`is your column name
usersss
括起来,就像您使用的
$row['usersss']
;检查一下。它应该是$row['users']或
$row['user]
@newbieproggie这也是一个错误,我想这是主要的问题
$row['usersss']
,您已经用
$row['user']
替换了它,请不要为了获得分数而重复我的答案。很明显,您正在这样做。@NewbieProggie,我在您的代码中也提到了这个问题,您需要检查我在您的答案中提到的注释。因为那个错误,我发布了新的答案