gpt4 book ai didi

PHP:MySQL 选择查询与字符串操作

转载 作者:太空宇宙 更新时间:2023-11-03 12:01:12 27 4
gpt4 key购买 nike

我有一个数据库和一个包含大约 100,000 个键/值对记录的字符串,我想创建一个函数来查找值。

考虑到性能(页面加载时间)和崩溃安全性,使用字符串还是数据库更好?这是我的两个代码示例:

1.

echo find("Mohammad");

function find($value){
$sql = mysql_query("SELECT * FROM `table` WHERE `name`='$value' LIMIT 1");
$count = mysql_num_rows($sql);
if($count > 0){
$row = mysql_fetch_array($sql);
return $row["family"];
} else {
return 'NULL';
}
}

2.

$string = "Ali:Golam,Mohammad:Offer,Reza:Now,Saber:Yes";

echo find($string,"Mohammad");

function find($string,$value){
$array = explode(",",$string);
foreach($array as $into) {
$new = explode(":",$into);
if($new[0] == $value) {
return $new[1];
break;
}
}
}

最佳答案

数据库肯定是个好主意。

  1. 数据库很快,也许它们不如 PHP 中的基本字符串操作快,但如果有大量数据,数据库可能会更快。一个基本的选择查询(在我当前的默认桌面硬件上)大约需要 15 毫秒,缓存不到 1 毫秒,如果索引正确,这几乎与表中的名称数量无关。因此,您的网站将始终保持快速。

  2. 数据库不会导致 StackOverflow 或内存不足错误并使您的站点崩溃(这在很大程度上取决于您的 PHP 设置和硬件)

  3. 数据库更加灵活,假设您想在创建第一个数据集后添加/删除/编辑名称。使用“INSERT INTO”、“DELETE FROM”和“UPDATE”修改数据非常简单,比在代码中某处编辑大约 100,000 个条目的字符串要好。

你的代码

  1. 您肯定需要使用 MySQLi or PDO相反,代码可能是这样的:
$mysqli = new mysqli("host", "username", "password", "dbname");$stmt = $mysqli->prepare(    'SELECT string FROM table WHERE name = ? LIMIT 1');$stmt->bind_param("s", $value);$stmt->execute();$stmt->store_result();$stmt->bind_result($string);$stmt->fetch();$stmt->close();

这使用 MySQLiPrepared Statements ( for security ),而不是弃用的 MySQL 扩展 ( in PHP 5.5 )

关于PHP:MySQL 选择查询与字符串操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29118063/

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