[英]PHP MySQL "DELETE FROM `table` WHERE `id` = | unknown column `id`
我的代码:
if (isset($_POST['del'])) {
foreach ($_POST['del'] as $id){
if ($stmt = $mysqli->prepare("DELETE FROM `users` WHERE `̌id` = ?")) {
$stmt->bind_param('i', $id);
$stmt->execute();
} else {
printf("Errormessage: %s<br>", $mysqli->error);
}
}
}
结果: Errormessage: Unknown column '̌id' in 'where clause'
$_POST['del']
包含来自表单复选框的整数。
但是,这与先前的相同连接一起使用,并且可以工作:
$modified = arrayRecursiveDiff($_POST, $data);
foreach($modified as $key => $val_arr) {
if (!is_array($val_arr)) {continue;}
foreach ($val_arr as $iteration => $val) {
$id = $iteration + 1;
$query = 'UPDATE users
SET '. $key .'="'. $val .'"
WHERE id = '. $id;
if (preg_match('/.*\sdel\=.*/',$query) === 0){
$mysqli->query($query);
}
}
}
最有趣的是,我试图回显该查询并将其直接复制到mysql命令提示符中。 效果很好...
如果有人对这里可能发生的问题有一个答案,我将不胜感激,
似乎有些奇怪的字符( 编辑:请查阅Footnotes )类似于id
之前的反引号,但实际上不是。
我还无法从编辑器中确切得知。 ( 编辑:查阅脚注 )
更改此行:
if ($stmt = $mysqli->prepare("DELETE FROM `users` WHERE `̌id` = ?")) {
至
if ($stmt = $mysqli->prepare("DELETE FROM `users` WHERE `id` = ?")) {
在您使用更新的代码编辑问题之后,我刚刚再次进入编辑模式(美国东部时间下午11:00),我将查询行复制/粘贴到了我的编辑器中,并且在第一个反引号和id
单词之间仍然有一个奇怪的字符。
if ($stmt = $mysqli->prepare("DELETE FROM `users` WHERE `̌id` = ?")) {
^^
将实际代码复制/粘贴到文件中。 但是我很好奇您正在使用哪个文件编辑器导致此问题,或者您是手动键入此文件?
if (isset($_POST['del'])) {
foreach ($_POST['del'] as $id){
if ($stmt = $mysqli->prepare("DELETE FROM `users` WHERE `id` = ?")) {
$stmt->bind_param('i', $id);
$stmt->execute();
} else {
printf("Errormessage: %s<br>", $mysqli->error);
}
}
}
从我在编辑器中发现的内容来看,这似乎是( 要么 )这个Unicode字符‎
那是在id
之前
Unicode十六进制:8206
Unicode十进制:33286
UTF-8十六进制:e88886
HTML实体:舆情
来源: http : //www.htmlescape.net/82/character_8206.html
或来自以下网站: http : //en.wikipedia.org/wiki/Left-to-right_mark
我引用:“ LRM使得标点符号仅与LTR文本(“ C”和LRM标记)相邻,因此其位置就好像它在从左到右的文本中一样,即在上一个文本的右边某些软件可能会要求‎
或‎
而不是不可见的Unicode字符本身; 实际的不可见字符也会使复制编辑变得困难。
补充说明:我最初在进行Google搜索时发现的关于该主题的Wikipedia信息,这使我进入了该页面 , 该页面使我进入了我在上面发布的Wikipedia页面 。
原始问题中的另一个Unicode字符是̌
我从unicodemap.org引用: "Unicode Character Map - 0x036F (aka "̌")"
Unicode Hexadecimal: 0x030C
Unicode Decimal: 780
UCS-2 Hexadecimal: 0x0C03
UCS-2 Decimal: 3075
HTML Hexadecimal: ̌
HTML Decimal: ̌
字符(可能很难看):
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.