如果您对php-在MySQLDB中存储翻译的最佳方法和mysql语句翻译感兴趣,那么这篇文章一定是您不可错过的。我们将详细讲解php-在MySQLDB中存储翻译的最佳方法的各种细节,并对mysql语句
如果您对php-在MySQL DB中存储翻译的最佳方法和mysql语句翻译感兴趣,那么这篇文章一定是您不可错过的。我们将详细讲解php-在MySQL DB中存储翻译的最佳方法的各种细节,并对mysql语句翻译进行深入的分析,此外还有关于MySQL PHP – 每次用户登录时存储时间戳的最佳方式、php – MySQL – 存储货币符号的最佳方法?、php – 在mysql DB中存储ASCII代码、php – 在mysqli中插入许多值的最佳方法?的实用技巧。
本文目录一览:- php-在MySQL DB中存储翻译的最佳方法(mysql语句翻译)
- MySQL PHP – 每次用户登录时存储时间戳的最佳方式
- php – MySQL – 存储货币符号的最佳方法?
- php – 在mysql DB中存储ASCII代码
- php – 在mysqli中插入许多值的最佳方法?
php-在MySQL DB中存储翻译的最佳方法(mysql语句翻译)
我正在使用多语言网站.
例如,1个lang的DB表页面如下所示
现在,我对翻译有2个想法:
>要以默认语言使用所有表格-英语并创建第二张表格-翻译仅在需要时使用它.
>或在现有表中添加title_ru,title_en …之类的列.
哪种更快,更有效的方法?并且请解释您的想法(为什么会这样想)
解决方法:
我不会选择您的解决方案.
为每种语言创建新表并不是最佳选择,因为您随后必须根据选择的语言来修改每个查询.同样,添加新语言应该是一件相当简单的任务,那就意味着添加新表架构并更新整个代码库.
同样,为每种语言添加新列也存在相同的问题.
为什么不仅仅拥有一个字典表,其语言ID作为PK的一部分.
写您的网站,以便根据当前的语言ID选择文本(1 =英语,2 =俄语等)
然后,要在运行时切换到另一种语言,所要做的就是在代码中将语言ID从1设置为2,所有查询将继续起作用.
MySQL PHP – 每次用户登录时存储时间戳的最佳方式
我需要跟踪用户的所有登录信息,以便每次登录时我都有他们这样做的时间戳.这样做的最有效和最好的方法是什么?
我总是通过在users表中有一个文本字段来存储它,该文本字段存储由字符分隔的unix时间戳.每次登录时,都会将另一个时间戳添加到结尾.
1243453458|1255476933|1263453743|1318495068|
这是一个不好的方式吗?每当用户登录时,我都会想到一个单独的登录表,每次登录都是一种过度杀伤,并且在检索此信息时会对数据库造成更大的压力.
请记住,我在PHP中处理这些时间戳,并使用数据中的jQuery创建图形.
解决方法:
是的,这是一种存储任何东西的可怕方式,包括时间戳,还有更好的方法可以做到这一点.即使是最简单的表也会给你带来更好的性能:
user_id (int) | last_login (timestamp)
>您将时间戳存储为字符串.这对于存储,检索和更新来说是完全没有效率的;加上你最终会遇到一个列限制.
>出于这种目的,存在大量优化的数据类型 – MysqL服务器开发人员倾向于知道有关存储数据的一两件事.
>对于具有固定大小行的这样一个小表的数据库命中率可以忽略不计 – 而不是具有可变大小字符串的表,这需要在应用程序中进一步处理.
换句话说,通过尝试优化应用程序(基于不正确的假设 – “另一个表格太过紧张”),你已经对它进行了悲观化,提出了一个全面的低效解决方案.不要过分复杂化;如果有疑问,请勾选两个选项并亲自看看.
php – MySQL – 存储货币符号的最佳方法?
只是想知道在MySQL DB中存储货币值和符号的最佳方法是什么?感谢浏览SO,我将我的金额存储为十进制(19,2)vaule – 这很好 – 但我更关心货币符号(例如€,£,$等),因为我想允许最终用户在设置阶段设置自己的货币单位.我还想避免任何关于字符集的不确定性,这些字符集目前设置在utf8(双方).
我现在的方式是使用PHP ifelse语句将它们存储为HTML Numerical Codes来过滤输入.这是最好的方法吗?如果不是,那是什么?有需要吗?许多人都提前了!
解决方法:
imho,你可以将数据分成两列
amount = decimal(19,2) --- question : unsigned for positive value only
currency_id = int(10) unsigned --- which is ID to currency table
当货币字段引用另一个表时,
您可以将所有类型的附加信息存储到该表中(例如汇率)
更好地描述您希望如何呈现符号
php – 在mysql DB中存储ASCII代码
我应该在保存到我的数据库之前操纵数据(使用javascript)
为了存储为HTML代码(& heart;)或者我应该更改数据存储的类型,MysqL将处理所有内容? (UTF-8)
解决方法
尽管如此,我建议您在数据库字段中使用UTF-8. UTF-8允许更广泛的字符.
php – 在mysqli中插入许多值的最佳方法?
我正在寻找一种sql注入安全技术,用PHP和MysqLi一次插入大量行(约2000).
我有一个包含所有必须包含的值的数组.
目前我正在这样做:
<?PHP
$array = array("array", "with", "about", "2000", "values");
foreach ($array as $one)
{
$query = "INSERT INTO table (link) VALUES ( ?)";
$stmt = $MysqLi->prepare($query);
$stmt ->bind_param("s", $one);
$stmt->execute();
$stmt->close();
}
?>
我尝试了call_user_func_array(),但它导致了stackoverflow.
有什么更快的方法可以做到这一点(比如一次插入所有这些?),但仍然可以防止sql注入(如准备好的语句)和stackoverflows?谢谢!
解决方法:
通过将插入放在事务中,您应该能够大大提高速度.您还可以在循环外部移动prepare和bind语句.
$array = array("array", "with", "about", "2000", "values");
$query = "INSERT INTO table (link) VALUES (?)";
$stmt = $MysqLi->prepare($query);
$stmt ->bind_param("s", $one);
$MysqLi->query("START TRANSACTION");
foreach ($array as $one) {
$stmt->execute();
}
$stmt->close();
$MysqLi->query("COMMIT");
编辑:
我在我的Web服务器上测试了10,000次迭代的代码.
没有交易:226秒.
随着交易:2秒.
或者至少对于该测试,速度增加两个数量级.
我们今天的关于php-在MySQL DB中存储翻译的最佳方法和mysql语句翻译的分享已经告一段落,感谢您的关注,如果您想了解更多关于MySQL PHP – 每次用户登录时存储时间戳的最佳方式、php – MySQL – 存储货币符号的最佳方法?、php – 在mysql DB中存储ASCII代码、php – 在mysqli中插入许多值的最佳方法?的相关信息,请在本站查询。
本文标签: