PHP MySQL“;从`table`中删除,其中`id`=|未知列`id`
我的代码:PHP MySQL“;从`table`中删除,其中`id`=|未知列`id`,php,mysql,Php,Mysql,我的代码: 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("Errorme
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);
}
}
}
$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命令提示符中。它工作得很好
如果有人能回答这里可能出现的问题,我将不胜感激。似乎有一个奇怪的字符(编辑:参考脚注),它类似于
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);
}
}
}
if(isset($\u POST['del'])){
foreach($_POST['del']作为$id){
if($stmt=$mysqli->prepare(“从`users`中删除,其中`id`=?”){
$stmt->bind_参数('i',$id);
$stmt->execute();
}否则{
printf(“错误消息:%s
”,$mysqli->error);
}
}
}
脚注: 从我在编辑器中发现的情况来看,它似乎是(或者)这个unicode字符
代码>在id
Unicode十六进制:8206
Unicode十进制:33286
UTF-8十六进制:e88886
HTML实体:舆
资料来源:
或此发件人:
我引用:“LRM导致标点符号仅与LTR文本相邻–即“C”“和LRM标记–因此其位置就好像是在从左到右的文本中,即在前面文本的右侧<代码>代码>或&lrm某些软件可能需要code>而不是不可见的Unicode字符本身实际的不可见字符也会使副本编辑变得困难。“
补充说明:我在维基百科上找到的关于这个主题的信息,我最初是在谷歌搜索时找到的,这让我找到了上面的帖子
原始问题中的另一个Unicode字符是̌;
我引自:“Unicode字符映射-0x036F(又称“̌”)”
Unicode十六进制:0x030C
Unicode十进制:780
UCS-2十六进制:0x0C03
UCS-2十进制:3075
HTML十六进制:̌;
HTML十进制:̌;
字符(可能有点难看):
̌似乎有一些奇怪的字符(编辑:参考脚注)类似于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);
}
}
}
if(isset($\u POST['del'])){
foreach($_POST['del']作为$id){
if($stmt=$mysqli->prepare(“从`users`中删除,其中`id`=?”){
$stmt->bind_参数('i',$id);
$stmt->execute();
}否则{
printf(“错误消息:%s
”,$mysqli->error);
}
}
}
脚注:
从我在编辑器中发现的情况来看,似乎是(或者)这个unicode字符;
在id
Unicode十六进制:8206
Unicode十进制:33286
UTF-8十六进制:e88886
HTML实体:舆
资料来源:
或此发件人:
我引述:“LRM导致标点符号仅与LTR文本相邻——“C”和LRM标记,因此其位置就好像是在从左到右的文本中,即在前面文本的右侧<代码>代码>或&lrm某些软件可能需要code>而不是不可见的Unicode字符本身实际的不可见字符也会使副本编辑变得困难。“
补充说明:我在维基百科上找到的关于这个主题的信息,我最初是在谷歌搜索时找到的,这让我找到了上面的帖子
原始问题中的另一个Unicode字符是̌;
我引自:“Unicode字符映射-0x036F(又称“̌”)”
Unicode十六进制:0x030C
Unicode十进制:780
UCS-2十六进制:0x0C03
UCS-2十进制:3075
HTML十六进制:̌;
HTML十进制:̌;
字符(可能有点难看):
̌您是否选择了正确的数据库?您缺少一个空格。我的屏幕上的灰尘在哪里,或者某些特殊字符被用作背景标记?更改̌id到id,有一个̌在iYou前面的字符中有一些奇怪的字符。在“编辑更多”中查看您的代码时,在您的backtickid
之间出现了两个字符-还是只有我?您的一个backtick不正确,就在id
之前,您选择了正确的数据库吗?您缺少一个空格。我屏幕上的灰尘在哪里,或者某个特殊字符被用作背景标记?更改̌id到id,有一个̌iYou之前的字符中有一些奇怪的字符。在“编辑更多”中查看代码时,在您的