我有一个域,用户有一个带有自己名称的子域。
例:
- 用户:维托尔
- 子域:vitor.google.com
数据库具有表user
列my_users
,并在表 users_infos
中具有列birthday
、address
、password
、city
和 state
列。如何在PHP中做到这一点index.php
可以将此信息直接用户发送到数据库?
这是我不正确的代码:
// Get Subdomain
$urlExplode = explode('.', $_SERVER['HTTP_HOST']);
if (count($urlExplode) > 2 && $urlExplode[0] !== 'www') {
$subdomain = $urlExplode[0];
echo $subdomain;
}
// Select DB
$sql = "SELECT * FROM users_infos i INNER JOIN my_users u on u.id = i.id where u.users='$users'";
$result = mysql_query($sql);
if($result === FALSE) {
die(mysql_error());
// TODO: better error handling
}
else {
$row = mysql_fetch_array($result);
$userTitleSite = $row['userTitleSite'];
echo $id_textos = $row["id_textos"];
echo "<br />";
echo $id = $row["id"];
echo "<br />";
echo $phone = $row["phone"];
echo "<br />";
echo "<br />";
}
// Says that the subdomain is = user
$subdomain = $user;
正确答案如下:
使用您给我的帮助,看起来我到了这里..遵循我可以为有相同问题的未来用户执行的正确代码:
// Get subdomain
$urlExplode = explode('.', $_SERVER['HTTP_HOST']);
if (count($urlExplode) > 2 && $urlExplode[0] !== 'www') {
$subdomain = $urlExplode[0];
echo $subdomain;
}
// Says that the subdomain is = user
$user = $subdomain;
// Select DB
$sql = "SELECT * FROM vms_textos i INNER JOIN vms_users u on u.id = i.id where u.user='$user'";
$result = mysql_query($sql);
if($result === FALSE) {
die(mysql_error());
// TODO: better error handling
}
else {
$row = mysql_fetch_array($result);
$userTitleSite = $row['userTitleSite'];
echo "<br />";
echo $id_textos = $row["id_textos"];
echo "<br />";
echo $user= $row["user"];
echo "<br />";
echo $id = $row["id"];
echo "<br />";
echo $telefone = $row["telefone"];
echo "<br />";
echo "<br />";
}
echo "<br />";
echo "<br />";
谢谢大家对我的帮助! :)
$subdomain = $user;
应该放在$sql之前,因为你的代码是写的$user是空的。
你确定 WHERE 子句u.id = i.id
是正确的吗?换句话说,my_users和users_infos表中的 ID 列是否匹配?更常见的是在users_infos表上有一个外键引用(例如 my_users_id),在这种情况下,查询将如下所示:
SELECT *
FROM users_infos i
INNER JOIN my_users u on u.id = i.my_users_id
WHERE u.users='$users'