Mysqli PHP MySqli_result()
Mysqli PHP MySqli_result()
在使用 MySql 而不是 MySqli 时,我遇到了一些错误。 MySql 已被贬低。
我在网站上应用 MySqli 函数,但我在数据库连接文件夹中需要的东西使用 MySql。我曾尝试阅读 PHP MySqli 文档以了解如何将其更改为 MySqli,但没有成功。
函数为:
这是为了与MySql服务器建立连接
$this->conn = $func($this->host, $this->user, $this->password);
if (!$this->conn) {
return false;
}
而下面是请求数据库
if (@!mysql_select_db($this->database, $this->conn)) {
return false;
}
return true;
}
发生的另一件事是,在管理面板中,我试图创建页码来获取数据,因为有时输入的数据太多。
我通过一个 for 循环从 $start 到 $end 以 i 递增来执行此操作。
发生的事情是我正在使用 mysql_result(),当我切换到 mysqli 时,它给出了一个错误,指出此函数未定义。我尝试使用 mysqli_fetch_all() 但它没有用。
下面的代码是通过我上面提到的for循环发生的:
echo '<td>' . mysqli_result($result, $i, 'productid') . '</td>';
echo '<td>' . mysqli_result($result, $i, 'productname') . '</td>';
以上代码给出的错误是:
Call to undefined function mysqli_result()
建议您这样获取结果:
while ($row = mysqli_fetch_assoc($result)){
echo "<td>" . $row['productid'] . "</td>";
echo "<td>" . $row['productname'] . '</td>';
}
如果您仍然在 mysqli 上遇到错误,那么您需要检查您的 PHP 版本,应该是 5.0.0 或更高版本。
将 <?php phpinfo() ?>
添加到您的代码中以在您的服务器上安装 PHP 版本。
更新
根据您的意见,您想在 table 中显示 productid 和 productname 的数据时添加分页功能,现在您应该首先使用 MySQL 的限制功能,阅读这里 http://www.w3schools.com/php/php_mysql_select_limit.asp
然后你应该在你的 select 查询之前写一段代码来为它提供 pagesize 和 pageindex,pageindex 将根据 pagesize 和 currentpage 计算,你也应该有一个单独的查询获取总行数才能计算出页数。
这个问题Simple PHP Pagination script有一个非常全面的答案,将向您解释如何进行分页。
MySql 扩展名早已弃用。您应该将 PHP 脚本转换为使用 MySQLi 扩展。此扩展从 PHP 版本 4.1.3 开始可用,并提供许多高级功能,如面向对象的实现。看起来你有一些遗留代码,你需要用 MySqli 函数替换 MySql 扩展函数,这并不难做到。如果能把完整的代码贴出来就更方便了。
根据您的问题,首先您需要更改 MySqli 连接到数据库的方式。不像 MySql 扩展有 2 个连接函数和 select 数据库。 MySqli 扩展在一个函数调用中完成此操作。 (注意:以下是类似于MySql扩展的程序风格代码,同样可以在对象风格代码中完成。)
$link = mysqli_connect('localhost', 'my_user', 'my_password', 'my_db');
然后您使用在“$link”上方创建的连接查询您的数据库
$result = mysqli_query($link, 'SELECT * FROM emp ORDER BY id LIMIT 0,10');
“$result”是您获取的数据的资源 link。您可以使用此新扩展中提供的许多功能来获取结果数据。没有名为 'mysqli_result' 的函数,这就是您出错的原因。
mysqli_fetch_all, mysqli_fetch_assoc, mysqli_fetch_array etc.
看看这个 link:http://php.net/mysqli_result
根据编写代码的方式,您可能必须更改代码才能在许多地方获取结果。但这是你必须这样做的方式。
希望对您有所帮助,有任何问题都可以问。
在使用 MySql 而不是 MySqli 时,我遇到了一些错误。 MySql 已被贬低。 我在网站上应用 MySqli 函数,但我在数据库连接文件夹中需要的东西使用 MySql。我曾尝试阅读 PHP MySqli 文档以了解如何将其更改为 MySqli,但没有成功。
函数为:
这是为了与MySql服务器建立连接
$this->conn = $func($this->host, $this->user, $this->password);
if (!$this->conn) {
return false;
}
而下面是请求数据库
if (@!mysql_select_db($this->database, $this->conn)) {
return false;
}
return true;
}
发生的另一件事是,在管理面板中,我试图创建页码来获取数据,因为有时输入的数据太多。 我通过一个 for 循环从 $start 到 $end 以 i 递增来执行此操作。 发生的事情是我正在使用 mysql_result(),当我切换到 mysqli 时,它给出了一个错误,指出此函数未定义。我尝试使用 mysqli_fetch_all() 但它没有用。
下面的代码是通过我上面提到的for循环发生的:
echo '<td>' . mysqli_result($result, $i, 'productid') . '</td>';
echo '<td>' . mysqli_result($result, $i, 'productname') . '</td>';
以上代码给出的错误是:
Call to undefined function mysqli_result()
建议您这样获取结果:
while ($row = mysqli_fetch_assoc($result)){
echo "<td>" . $row['productid'] . "</td>";
echo "<td>" . $row['productname'] . '</td>';
}
如果您仍然在 mysqli 上遇到错误,那么您需要检查您的 PHP 版本,应该是 5.0.0 或更高版本。
将 <?php phpinfo() ?>
添加到您的代码中以在您的服务器上安装 PHP 版本。
更新
根据您的意见,您想在 table 中显示 productid 和 productname 的数据时添加分页功能,现在您应该首先使用 MySQL 的限制功能,阅读这里 http://www.w3schools.com/php/php_mysql_select_limit.asp
然后你应该在你的 select 查询之前写一段代码来为它提供 pagesize 和 pageindex,pageindex 将根据 pagesize 和 currentpage 计算,你也应该有一个单独的查询获取总行数才能计算出页数。
这个问题Simple PHP Pagination script有一个非常全面的答案,将向您解释如何进行分页。
MySql 扩展名早已弃用。您应该将 PHP 脚本转换为使用 MySQLi 扩展。此扩展从 PHP 版本 4.1.3 开始可用,并提供许多高级功能,如面向对象的实现。看起来你有一些遗留代码,你需要用 MySqli 函数替换 MySql 扩展函数,这并不难做到。如果能把完整的代码贴出来就更方便了。
根据您的问题,首先您需要更改 MySqli 连接到数据库的方式。不像 MySql 扩展有 2 个连接函数和 select 数据库。 MySqli 扩展在一个函数调用中完成此操作。 (注意:以下是类似于MySql扩展的程序风格代码,同样可以在对象风格代码中完成。)
$link = mysqli_connect('localhost', 'my_user', 'my_password', 'my_db');
然后您使用在“$link”上方创建的连接查询您的数据库
$result = mysqli_query($link, 'SELECT * FROM emp ORDER BY id LIMIT 0,10');
“$result”是您获取的数据的资源 link。您可以使用此新扩展中提供的许多功能来获取结果数据。没有名为 'mysqli_result' 的函数,这就是您出错的原因。
mysqli_fetch_all, mysqli_fetch_assoc, mysqli_fetch_array etc.
看看这个 link:http://php.net/mysqli_result
根据编写代码的方式,您可能必须更改代码才能在许多地方获取结果。但这是你必须这样做的方式。
希望对您有所帮助,有任何问题都可以问。