我连接到我的数据库并获取表格。我创建了一个HTML表来列出我的所有公司以及" Read" "更新"和"删除"在每一行的末尾。如果我点击"阅读"在其中一家公司旁边,我如何获得该特定公司(或该特定行号),以便我可以将其作为参数传递。我想在该行显示该公司的信息。谢谢! `
C:\nativescript\mobile>npm run build-android-bundle --uglify
npm ERR! Windows_NT 6.1.7601
npm ERR! argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "run" "build-android-bundle" "--uglify"
npm ERR! node v6.11.0
npm ERR! npm v3.10.10
npm ERR! Invalid version: "1"
npm ERR!
npm ERR! If you need help, you may report this error at:
npm ERR! <https://github.com/npm/npm/issues>
npm ERR! Please include the following file with any support request:
npm ERR! C:\nativescript\mobile\npm-debug.log
=================================================================
0 info it worked if it ends with ok
1 verbose cli [ 'C:\\Program Files\\nodejs\\node.exe',
1 verbose cli 'C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js',
1 verbose cli 'run',
1 verbose cli 'build-android-bundle',
1 verbose cli '--uglify' ]
2 info using npm@3.10.10
3 info using node@v6.11.0
4 verbose stack Error: Invalid version: "1"
4 verbose stack at Object.fixVersionField (C:\Program Files\nodejs\node_modules\npm\node_modules\normalize-package-data\lib\fixer.js:191:13)
4 verbose stack at C:\Program Files\nodejs\node_modules\npm\node_modules\normalize-package-data\lib\normalize.js:32:38
4 verbose stack at Array.forEach (native)
4 verbose stack at normalize (C:\Program Files\nodejs\node_modules\npm\node_modules\normalize-package-data\lib\normalize.js:31:15)
4 verbose stack at final (C:\Program Files\nodejs\node_modules\npm\node_modules\read-package-json\read-json.js:349:5)
4 verbose stack at then (C:\Program Files\nodejs\node_modules\npm\node_modules\read-package-json\read-json.js:124:5)
4 verbose stack at ReadFileContext.<anonymous> (C:\Program Files\nodejs\node_modules\npm\node_modules\read-package-json\read-json.js:295:20)
4 verbose stack at ReadFileContext.callback (C:\Program Files\nodejs\node_modules\npm\node_modules\graceful-fs\graceful-fs.js:78:16)
4 verbose stack at FSReqWrap.readFileAfterOpen [as oncomplete] (fs.js:366:13)
5 verbose cwd C:\nativescript\mobile
6 error Windows_NT 6.1.7601
7 error argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "run" "build-android-bundle" "--uglify"
8 error node v6.11.0
9 error npm v3.10.10
10 error Invalid version: "1"
11 error If you need help, you may report this error at:
11 error <https://github.com/npm/npm/issues>
12 verbose exit [ 1, true ]
答案 0 :(得分:2)
根据以下代码制作所需的操作。
首先检查(GET)数组是否(不)为空且等于动作,并使用双引号值(带有转义双引号)正确回显$corp
变量。
请注意,我在PHP_EOL
的末尾添加了$table .= "<tr><td>"...
,以便生成干净的HTML,这有助于在查看HTML源时进行调试。对于像这样的事情来说,这是一个很好的调试工具,相信我。
让代码显示在一个长行中,非常难以可以使用。
附注:我会自行决定是否留下“创建”链接,因为问题中没有提到这一点,而且可能涉及的范围太宽。
我还可以假设您的Lab3
(文件夹)正在使用索引文件,并将用于执行所有这些操作。
如果../Lab3?action
不适合你,那么你可能需要使用类似的东西
而是../Lab3/index.php?action...
或../Lab3/your_file.php?action...
。
$table = "<table>" . PHP_EOL;
foreach ($corps as $corp) {
$table .= "<tr><td>" . $corp['corp'] . "</td><td>" . "<a href=\"../Lab3?action=read&corp=$corp\">Read</a>" . "</td><td>" . "<a href=\"../Lab3?action=update&corp=$corp\">Update</a>" . "</td><td>" . "<a href=\"../Lab3?action=delete&corp=$corp\">Delete</a>" . "</td></tr>" . PHP_EOL;
}
$table .= "</table>" . PHP_EOL . ' <a href="../Lab3">Create</a>';
if(!empty($_GET['action'])){
if($_GET['action'] == 'read'){
echo $read = "<br>Record to read: " . $_GET['corp'];
// You can place your query here
}
if($_GET['action'] == 'update'){
echo $update = "<br>Record to update: " . $_GET['corp'];
// You can place your query here
}
if($_GET['action'] == 'delete'){
echo $delete = "<br>Record to delete: " . $_GET['corp'];
// You can place your query here
}
}
但是,我必须声明这对SQL注入是开放的,您需要使用预准备语句。你已经在使用PDO了,所以这是一个好的开始。
注意:使用$var = (int)$_GET['integer_array'];
(作为示例),也有助于防止SQL注入,如果该值是整数则给出。如果没有,那么您不能对字符串值使用(int)
。
参考文献: