mysqli语句在php下不工作
mysqli select语句有一点问题,因为我做了一个select语句,它实际计算结果的数量。但是它不返回我想要的值,而是不返回任何值。需要帮助,伙计们。我使用mysqli和php将这个select语句作为函数来执行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'";
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 nameusersss
括起来,就像您使用的$row['usersss']
;检查一下。它应该是$row['users']或$row['user]
@newbieproggie这也是一个错误,我想这是主要的问题$row['usersss']
,您已经用$row['user']
替换了它,请不要为了获得分数而重复我的答案。很明显,您正在这样做。@NewbieProggie,我在您的代码中也提到了这个问题,您需要检查我在您的答案中提到的注释。因为那个错误,我发布了新的答案