gpt4 book ai didi

php - 通过 PHP 从 MySQL 获取数据——我做对了吗?

转载 作者:搜寻专家 更新时间:2023-10-30 21:53:06 24 4
gpt4 key购买 nike

我想这是一个简单的问题,但却是一个基础问题,我不确定最佳做法。

假设我有一个数据库,其中包含一些我想向用户显示的 IP 地址。

这是一种好的/安全的方式/做法吗?

//--> CONNECT TO DB, etc

$db_query = 'SELECT ip,'
."FROM table "
."GROUP BY ip ";

$result = $db_conn->query($db_query);
echo 'Found '.$result->num_rows.' records';

if($result->num_rows > 0) {

while($row = $result->fetch_array(MYSQLI_BOTH))
{
//POPULATE A HTML TABLE/WHATEVER WITH THE INFO
}
}

我最关心的是:$result->num_rows > 0 和这个:fetch_array(MYSQLI_BOTH)

我问是因为我在某处读到 num_rows > 0 通常意味着麻烦,具体取决于情况,例如用户登录。在那种情况下,我想它会 num_rows == 1 对吗?

而且,我还没有完全理解 MYSQLI_BOTH 和其他形式的抓取之间的区别。如果你能简单地向我解释一下它们以及何时使用它们,我将不胜感激。

你怎么看?

最佳答案

我会添加一个检查以确保您的查询执行正常 - 如果没有输出错误:

$result = $db_conn->query($db_query);
// check for error - output the error
if (!$result) {
$message = 'Invalid query: ' . mysqli_error() . "\n";
$message .= 'Whole query: ' . $db_query;
die($message);
}
echo 'Found '.$result->num_rows.' records';

除此之外......看起来还不错

编辑:

解释MYSQLI_BOTH,选项为MYSQLI_ASSOC、MYSQLI_NUM或MYSQLI_BOTH ->

  • MYSQLI_ASSOC = 关联数组,因此可以使用 $row['column']
  • 访问行的值
  • MYSQLI_NUM = 数字数组,因此使用数字$row[n] 访问行的值,其中 n 是列的编号(基于 0)
  • MYSQLI_BOTH = 可以同时使用 $row[n]$row['column'] 来访问行的值<

编辑2:

还有一个检查返回行数的函数:

if(mysqli_num_rows($result) == 0){ 
echo "Sorry. No records found in the database";
}
else {
// loop you results or whatever you want to do
}

编辑3:

php.net has some excellent docs for the MY_SQLI extension

关于php - 通过 PHP 从 MySQL 获取数据——我做对了吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8605852/

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