Comments (12)
We don't recommend to store the hashids in the database. Instead encode/decode them on the fly.
Use it when you don't want to expose your database numeric ids to users.
from hashids.
So the hashes are unique, and the behaviour is correct, the only issue is with your database being case insensitive.
from hashids.
Setting up a collation in the database may help you.
https://dev.mysql.com/doc/refman/8.0/en/case-sensitivity.html
https://stackoverflow.com/a/6448861
from hashids.
If you think you've found a bug. Please provide a failing test case in the HashidsTest
test class in a pull request.
from hashids.
Something similar happened to me!
Error reproduction
$hash = (new Hashids\Hashids('App\Models\Model'.'_string', 16))->encode(545) --> "KQAd7lo8XLogXG69"
$hash = (new Hashids\Hashids('App\Models\Model'.'_string', 16))->encode(501) --> "KQAd7lo8JLWgXG69"
from hashids.
@j8n as you can see, these are not the same hashes:
KQAd7lo8XLogXG69
KQAd7lo8JLWgXG69
from hashids.
Yes ok, I cannot reproduce the error again (with test data). I had a "Integrity constraint violation: 1062 Duplicate entry" for a hash id in a record
from hashids.
Ok, just to share the original as in my production env:
$hash = (new Hashids\Hashids('App\Models\Subscription'.'_OUTGO', 16))->encode(501); --> "P17zevgVkZExk80a"
$hash = (new Hashids\Hashids('App\Models\Subscription'.'_OUTGO', 16))->encode(545); --> "P17zevgVKZExk80a"
The only change is the case of the "K"
That's how I got the error above
from hashids.
The only change is the case of the "K"
This is the expected behaviour.
from hashids.
What's the use of Hashids lib, if we get a "Integrity constraint violation" error in the database? The database seems to understand the case incorrectly.
What do I have to do?
from hashids.
ok thanks
from hashids.
I'm saving the hashids to the DB and it is not possible to refactor the system, is there a way to make the DB queries in laravel to be case sensitive ?
from hashids.
Related Issues (20)
- Padding/minimum value not being respected HOT 1
- Laravel 9 has been released. Would be awesome if we could add support to this package 🚀 HOT 1
- Ability to encode fractions/decimal places HOT 2
- TypeError: Unsupported operand types: int - string on PHP 8.1 HOT 1
- [PHP 8.1] Deprecated: Implicit conversion from float-string to int loses precision HOT 1
- 2 particulars numbers render the exact same result whatever the salt used ???!!! HOT 1
- Is there any max length for the salt? HOT 2
- How can I get more randomness? HOT 1
- Implicit conversion from float-string HOT 1
- How to use without Composer? HOT 6
- Parsing ERROR? HOT 2
- Error Invalid text representation (hashids not decoding) with route in plural HOT 1
- Different results for large numbers between 32-bit and 64-bit HOT 1
- encode number 1 but got different values in laravel and hyperf project HOT 2
- xdffx dsdxsazazjjk
- Missing math extension for Hashids, install either bcmath or gmp. HOT 6
- HashIds not working with macOS Sonoma 14.2 HOT 3
- Github Actions produces gmp_mod(): Argument #1 ($num1) must be of type GMP|string|int error HOT 1
- gmp_mod Argument #1 ($num1) is not an integer string HOT 3
- Same result for different numbers HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from hashids.