我有这两个表:
lic_key_tbl
name license_key email
----------------------------------------
john 95g12dhp0 john@example.com
cath bdjagdlo8 cath@example.org
john 8nawjdcms john@example.com
alex mhi79y32p alex@alex.com
lic_reg_domain_tbl
lic_key registered_domain
-----------------------------
95g12dhp0 google.com
8nawjdcms abc.com
bdjagdlo8 microsoft.com
mhi79y32p facebook.com
基本上,我试图通过比较每个表中匹配的许可证密钥来显示属于当前登录用户的已注册域的列表(在本示例场景中,假设我以john@example.com身份登录)。
我知道这段代码不完整...
/* User info */
global $userdata;
$user_info = get_userdata($user_ID);
$user_email = $userdata->user_email;
/* DB table names */
global $wpdb;
$lic_key_table = $wpdb->prefix . 'lic_key_tbl';
$lic_reg_domain_table = $wpdb->prefix . 'lic_reg_domain_tbl';
$results = $wpdb->get_results("SELECT * FROM $lic_reg_domain_table);
foreach ( $results as $result ) { ?>
<li>
<?php echo $result->registered_domain; ?>
</li>
<?php }
?>
...但是如果我以john@example.com的身份登录,那么我看到的结果应该是:
google.com
abc.com
我希望这是有道理的。
答案 0 :(得分:1)
使用准备好的语句来防止SQL注入攻击。
const express = require('express');
const router = express.Router();
const cMod = require('../model/itemSchema');
const dMov = require('../model/nameSchema')
router.get('/items/edit/:id', (req, res, next)=>{
dMov.findById(req.params.id)
.then((editM)=>{
cMod.find()
.then((aItem)=>{
res.render('items/edit', {aItem, editM})
})
})
.catch((error)=>{
next(error)
})
.catch((err)=>{
next(err);
})
})
router.post('/items/updating/:id', (req, res, next)=>{
let id = req.params.id;
dMov.findByIdAndUpdate(id, req.body)
.then((upMov)=>{
res.redirect('/')
})
.catch((err)=>{
next(err);
})
})
//HandleBars The View
<label>Item1:</label>
<input name="Item1" type="text" value="{{editM.Item}}">
<br><br>
<label>Star:</label>
<select name="Names" >
{{#each aItem}}
<option value="{{this._id}}" selected="selected">{{this.name}}</option>
{{/each}};
</select>