Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php MySQL到MySQLi分号问题_Php_Mysql_Mysqli - Fatal编程技术网

Php MySQL到MySQLi分号问题

Php MySQL到MySQLi分号问题,php,mysql,mysqli,Php,Mysql,Mysqli,几年前我创建了一个内部网,当时使用的是mysql扩展。我现在将其转换为mysqli扩展。在我遇到这个问题之前,一切都很顺利 我使用mysql对旧的查询行进行了注释,该行运行良好。然后,我复制粘贴了它,删除了注释语句,并对mysqli进行了更改,就像我现在做的几次一样,保存了它,当我打开页面时,没有任何效果,没有任何打印。空白页 然后,我在下面手动重新键入查询,对不起作用的查询进行了注释,结果它起了作用。如果我反其道而行之,那就行不通了。如果我比较这两条线,它们完全相同,一条有效,另一条无效。然后

几年前我创建了一个内部网,当时使用的是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编码的

如果我将分号复制粘贴到记事本中,然后将记事本中的另一个分号复制粘贴到非工作请求中,那么它就不起作用了

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

我完全不知所措,我知道我可以说‘好吧,删除分号并再次键入它就行了’,但我在内部网中有数百个甚至数千个请求,有些请求行吗?这是我第一次意识到这一点。这并不能说明它为什么会这样做

有人知道它为什么会这样


非常感谢

这是希腊问号


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

好吧,这有多奇怪

我去过那个网站:我把我的两个分号都贴在那里,下面是右边“ANSI字符集”的结果(ISO 8859-1)

工作分号=

非工作分号=ï»

我使用Ultra Edit进行编程,我显示了完全相同的行,即使在将它复制并粘贴到记事本中之后,仍然是一样的

我也使用Chromebox进行编程,我使用Codeanywhere作为我的文本编辑器,这是我在非工作行上看到的。。。(见图)

所以基本上,web编辑器Codeanywhere能够看到分号的“问题”,并通过在分号前添加一个红点来通知我,对他来说,使用的字符不同,网站“字符集解码器”证实了这一点


这真的很奇怪,我认为整个文件都编码在一个字符集中,而文件中的单个字符不能使用不同的字符集…,或者我根本不了解字符集是如何工作的…

检查PHP错误日志。首先,确保这不是缓存问题。您的服务器是否使用主动缓存?可能是这样。另外,检查分号是否为标准分号:其他一些语言(如汉语普通话)对同一分号符号使用不同的unicode字符,这会导致脚本出错。您只会得到一个没有错误的空白页,因为您的php.ini中没有错误报告。检查日志或打开错误。这是我在打开错误报告和apache日志时得到的结果:PHP解析错误:语法错误,意外的T_字符串。我知道结尾的分号是个问题,但为什么它会这样做,它毕竟是一个正确的分号,而且它“正在”处理我以前的mysql查询,为什么现在不行?!?尝试将两个字符复制粘贴到中可能你会看到字符不尽相同,这是有意义的,但有人知道1)如何从分号中检测希腊问号(我使用Ultra Edit 25.10,我的文件是正确的UTF-8编码)2)我怎么可能在那里键入希腊编码字符?我用我们的键盘。3) 为什么它使用我的mysql语句,而现在不使用我的mysqli语句……如果它是希腊问号,它在mysql语句中不会也失败吗?