PHP 查询不返回带有 varchar 的行

标签 php mysql

我有一个 mysql 表,其中用户列是 varchar。

这适用于 int 类型

$result = mysql_query("SELECT name FROM users WHERE id='$id'");

但是当我尝试匹配 varchar 时,没有返回任何内容。

$result = mysql_query("SELECT name FROM users WHERE user='$username'");

我尝试删除这些值,但仍然一无所获。

有什么建议吗?

最佳答案

我通常使用这样的东西。 (加上一些 sanitizer )

$username = strtolower($username);
$result = mysql_query("SELECT name FROM users WHERE LCASE(user)='{$username}'");

无论他们如何输入,通过使大小写相同,您都会获得用户名。

由于您使用的是 =,因此它必须完全匹配。否则你会使用LIKE

我上面提供的代码将返回用户名的精确匹配。 此代码将强制 $username 全部小写,然后我们可以使用 LCASE 对 MySQL 执行相同的操作。现在您可以进行相同的匹配。

您可能遇到的问题是 userNameUserName 甚至 UsErNaMe 不同。确保在进行完全匹配时大小写也相同。

关于PHP 查询不返回带有 varchar 的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22820715/

相关文章:

php - 在 Prestashop 模块中使用命名空间

c# - 如何通过mysql数据库在xamarin android中授权

mysql - 如何在mysql中使用datediff函数计算罚款

php - Laravel 迁移已完成,但在数据库中并不总是可见

php - 通过 php 将数组参数插入 mysql

php - 仅显示来自 PHP 和 MySQL 的最新三个结果

javascript - 通过 JQuery UI Javascript 集成循环或通配符

javascript - PHP 表单处理无法与 javascript onclick 函数一起使用

python - 通过python将Mysql数据发送到telegram bot

mysql - MySQL复合表的搜索应该如何实现?