在Notepad ++中使用MySQLi函数需要包含哪些内容?

时间:2013-07-10 13:33:24

标签: php mysql notepad++

有没有人知道为什么Notepad ++不支持MySQLi功能?另外,如果你想在使用notepad ++时使用MySQLi函数(如mysqli_prepare()),你需要做什么?

这是我想要使用的代码:

<?php
function insert_batchmem_mysqli($file, $batchsize)   
{
if(!$f = fopen($file, 'r'))
{
printf("Failed to open file: %s\n", $file);
exit;
}

$mysqli = new mysqli('localhost', 'dbuser', 'dbpass', 'database');

if (mysqli_connect_errno()) 
{
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}

$template = "INSERT INTO words (word) VALUES %batch";

$numrows = 0;
$batchrows = 1;
$batch = "";
while($line = fgets($f))
{
if($batchrows < $batchsize)
{
  $batch .= "('{$line}'),";
  ++$batchrows;
}
elseif($batchrows == $batchsize)
{ 
  $batch .= "('{$line}')";

$query = str_replace("%batch", $batch, $template);

  $mysqli->query($query);
  $batch = "";
  $batchrows = 1;
}

++$numrows;
}

if(!empty($batch)) // Last batch was not executed because it was smaller than batchsize
{
$batch = substr($batch, 0, strlen($batch)-1); // Remove trailing comma
$query = str_replace("%batch", $batch, $template);

$mysqli->query($query);
}

$mysqli->close();
fclose($f);

return $numrows;
}
?>

MySQLi函数或subst函数都不起作用。实际上,它们甚至不会出现在粗体蓝色字体中,就像Notepad ++中的方法一般出现。

1 个答案:

答案 0 :(得分:3)

关于PHP的语法着色...
扩展要在Notepad ++中识别的PHP关键字
当使用mysqli'程序'编码风格时,以下适用,遗憾的是我仍然没有成功使用'对象'编码风格。

在第一次检查时,Notepad ++在语法高亮显示中似乎缺少一些关键字,特别是一些较新的mysqli_*函数,奇怪的是一些更通用的函数,如array_keys,{{1根据我的理解,这并不是Notepad ++的错误,它依赖于其他项目来编译预期的语言关键字,谢天谢地,Notepad ++为最终用户提供了通过'扩充这些列表的工具'}。},fclose等等。设置&gt;样式配置器&gt;语言:PHP&gt;风格:WORD&gt;用户定义的关键字'。

'Style Configurator'还列出了Notepad ++已经知道的'默认关键字',其中包含许多重复项。我怀疑除其他事项外,is_dir函数已被添加,其中“mysqli_*”被错误地删除,因为有许多i函数有3个副本,甚至还有一些mysql_*列出的函数应该只存在于mysql_*表单中。

我想:'这应该很简单,我只需要获得一个明确的php关键字列表并将它们粘贴到Notepad ++配置中,完成工作'......但事实证明PHP只有少数(67)内置关键字,以及在添加模块时成为PHP安装的一部分的更多内容。

根据http://www.php.net/manual/en/reserved.keywords.php,PHP中保留了以下67种语言结构:
mysqli_*

为简单起见,我很高兴来区分'语言结构'和'模块函数',所以我不会在第一次尝试中使Notepad ++语法高亮显示的配置复杂化,我只是想要一个相当全面的模块功能列表,这些功能存在于我当前安装的PHP中,可以粘贴到Notepad ++ config中。

使用PHP中的“__halt_compiler abstract and array as break callable case catch class clone const continue declare default die do echo else elseif empty enddeclare endfor endforeach endif endswitch endwhile eval exit extends final finally for foreach function global goto if implements include include_once instanceof insteadof interface isset list namespace new or print private protected public require require_once return static switch throw trait try unset use var while xor yield”函数可以相当快地实现。 (我不知道哪个基本模块提供了这个有用的功能,但它自PHP 4.0.4+以来就可用)它返回一个带有2个子数组的关联数组,一个包含我们要搜索的“内部”函数,另一个包含碰巧在当前脚本上下文中创建的“用户”函数,我现在要忽略它。

以下脚本将列出应添加到Notepad ++中的所有关键字,以用于特定的PHP安装。如果您已经在Notepad ++中有一个“用户定义的关键字”列表,则可以将它们添加到get_defined_functions()定义中,并按脚本中的空格分隔,这将从结果中排除它们,并仅显示这些关键字目前还没有被Notepad ++识别。 (或者您可以将此字符串留空,并使用完整生成的列表替换任何现有的用户定义的关键字。)

$usr_kw_str

复制上述脚本的输出并将其粘贴到Noteboard ++中 '设置&gt;样式配置器&gt;语言:PHP&gt;风格:WORD&gt;用户定义的关键字'

这就是这种简单化的方法。您可以推导出一种更优雅的解决方案,可以更仔细地区分关键字并直接替换XML控制文件的各个部分,但它不会提供比上述更多的功能。

如果您只是抓住我在试用该剧本时生成的列表的机会,那么here's a long list就可以复制&amp;粘贴到Notepad ++下... '设置&gt;样式配置器&gt;语言:PHP&gt;风格:WORD&gt;用户定义的关键字'

希望有所帮助 祝愿你 加文