【发布时间】:2013-08-31 11:27:48
【问题描述】:
我想在我的任何用户登录网站时显示属于他们的数据,以及每个表的名称(他们完成了对它们的报价)。
这是我使用的代码,但是当我添加它时它不起作用。
$result = mysql_query('SELECT *,\'tbl1\' AS tablename FROM (SELECT * FROM table1 WHERE user_id='$user_id') as tbl1 UNION SELECT *,\'tbl2\' AS tablename FROM (SELECT * FROM table1 WHERE user_id='$user_id') as tbl2'. ' ORDER BY `date` DESC');
while($sdata = mysql_fetch_array($result)){
echo $sdata['date'];
echo $sdata['tablename'];
echo $sdata['user_reward'];
}
我在哪里做错了?
【问题讨论】:
-
欢迎来到 Stack Overflow!请在编写任何更多 SQL 接口代码之前,必须阅读 proper SQL escaping 以避免严重的 SQL injection bugs。此外,
mysql_*functions 不应在新应用程序中使用,并且将从 PHP 的未来版本中删除。请考虑切换到MySQLiorPDO。正如所写,有人可能会在几秒钟内毁掉你的整个网站。 -
第一个错误在标题中。使用“想要”一词使情况更加复杂。从那里开始走下坡路。
-
让我们从头开始。你得到什么错误?如果没有错误,会发生什么?
mysql_error()中是否有任何 mysql 错误?您确定此查询选择了您实际要选择的数据吗? -
我同意@Strawberry - wanna 和 pls 往往会在这里赢得反对票。请记住,这里的问题是留给后人的,这里不是聊天室或论坛。
-
我建议你从调用中分离出你的 SQL 字符串,这样你就可以打印出你发送到数据库的内容。此外,将您的 SQL 包装到大约 80 个字符的边距,这样每个人都更容易阅读(在您的编辑器和我们的屏幕上)。请参阅my recent answer here 了解更多详情。
标签: php