use*_*551 6 php mysql sql mysql-error-1054
我有一个PHP脚本,由于某种原因,mysql继续将值视为选择/插入列.这是我的SQL查询的一个例子:
$query = mysql_query("SELECT * FROM tutorial.users WHERE (uname=`".mysql_real_escape_string($username)."`)") or die(mysql_error());
Run Code Online (Sandbox Code Playgroud)
这变成了:
SELECT * FROM tutorial.users WHERE (uname=`test`)
Run Code Online (Sandbox Code Playgroud)
错误是:
'where子句'中的未知列'test'
我也尝试过:
SELECT * FROM tutorial.users WHERE uname=`test`
Run Code Online (Sandbox Code Playgroud)
tpd*_*pdi 35
在MySql中,反引号表示标识符是列名.(其他RDBMS使用括号或双引号).
因此,您的查询是"给我所有行,其中名为'uname'的列中的值等于名为'test'的列中的值".但是由于表中没有名为test的列,因此您会看到错误.
用单引号替换反引号.
奇怪的?怎么会这样?它确切地说出了什么是错的.您的表中没有"测试"列.你确定你有合适的桌子吗?'tutorial.users'?你确定表的名称不同吗?也许你打算做
SELECT * from users WHERE uname = 'test';
Run Code Online (Sandbox Code Playgroud)
假设数据库已命名,则必须仅引用表名而不是数据库 tutorial
| 归档时间: |
|
| 查看次数: |
52532 次 |
| 最近记录: |