gpt4 book ai didi

php - Num_Rows 中未选择任何数据库

转载 作者:行者123 更新时间:2023-11-29 13:57:45 26 4
gpt4 key购买 nike

出现一个奇怪的错误,指出我在运行 mysqli_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);

有什么想法为什么这不起作用吗?

最佳答案

我更改了您的代码中的几处内容,请查看。

如果您使用 mysqli 类,那么类实例化之后的任何内容都应类似于:

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

关于php - Num_Rows 中未选择任何数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15569993/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com