首页 > 解决方案 > MySQL到MySQLi分号问题

问题描述

几年前我创建了一个 Intranet,并使用了 mysql 扩展。我现在将其转换为 mysqli 扩展。一切都很顺利,直到我遇到这个问题;

我使用运行良好的 mysql 评论了旧的查询行。然后我复制粘贴了它,删除了注释语句并对 mysqli 进行了更改,就像我现在做了几次一样,保存了,当我打开页面时,没有任何效果,没有打印。一个空白页。

然后我在下面手动重新输入了查询,评论了不工作的那个,它工作了。现在如果我反其道而行之,那就不行了。如果我比较这两条线,它们完全相同,一条有效,另一条无效。然后,我将每个字符串从工作行复制到非工作行,并检查它是否仍在工作,一切都来自工作行,但它不起作用。我做了除了结束分号之外的每个字符......然后我开始将结束分号从工作行复制到非工作行,保存,它工作......,所以不知何故,非工作行中的分号是不是和工作线上的那个“一样”,但在外表上,性格完全一样,没有任何区别。

这是两行的副本;

$query = mysqli_query($link,$querystring) or die(mysqli_error($link)); //This line IS NOT working

$query = mysqli_query($link,$querystring) or die(mysqli_error($link)); //This line IS working

两个查询都引用相同的$querystring值,因此$querystring没有错,因为它适用于其中一个。

我没有收到任何错误消息,只是从查询所在的位置开始的空白页。

我的页面是 UTF-8 编码的。

如果我什至将该分号复制粘贴到记事本中,然后再从记事本复制粘贴到非工作请求,它就不起作用。

如果我从工作查询到非工作查询对记事本做同样的事情,它将起作用。

我完全一无所知,我知道我可以说“好的,它可以通过删除分号并再次键入它来工作”,但是我在内联网中有数百个甚至数千个请求,有些请求会有效而其他请求不会吗?这是我第一次意识到这一点。这并不能说明它为什么这样做?

有人知道为什么会这样吗??!

非常感谢!

标签: phpmysqlmysqli

解决方案


它是一个希腊问号

https://en.wikipedia.org/wiki/Question_mark#Greek_question_mark

看起来像一个分号,但它不是,它在 javascript 中是非法的,而且它似乎不会终止 PHP 语句。


推荐阅读