在SQL中(遗憾的是)LIKE由于数据库违反了几乎所有规范化规则,因此经常不得不使用" "条件.我现在无法改变它.但这与这个问题无关.
此外,我经常使用条件,例如WHERE something in (1,1,2,3,5,8,13,21)更好的可读性和SQL语句的灵活性.
在没有编写复杂的子选择的情况下,有没有可能将这两种方法结合起来?
我想要一些简单WHERE something LIKE ('bla%', '%foo%', 'batz%')而不是这样的东西:
WHERE something LIKE 'bla%'
OR something LIKE '%foo%'
OR something LIKE 'batz%'
Run Code Online (Sandbox Code Playgroud)
我在这里使用SQl Server和Oracle,但我很感兴趣,如果在任何RDBMS中都可以这样做.
XDebug提供配置指令"xdebug.profiler_enable_trigger",允许通过在通过HTTP调用脚本时传递GET或POST参数"XDEBUG_PROFILE"来激活分析.如果您不想对所有脚本进行性能分析,但仅针对少数特殊情况而不总是更改PHP配置,则这很方便.
有没有办法实现命令行PHP程序的相同行为?我试图将"XDEBUG_PROFILE"作为命令行参数传递,但它不起作用.
通常,分析命令行PHP运行良好,但我希望具有与浏览器和HTTP服务器相同的每次调用灵活性.
有什么建议?
我一直想知道在JavaScript中使用原型是否应该比直接将对象的每个成员直接附加到它更有内存效率,原因如下:
与:
我开始做一个小实验:
var TestObjectFat = function()
{
this.number = 42;
this.text = randomString(1000);
}
var TestObjectThin = function()
{
this.number = 42;
}
TestObjectThin.prototype.text = randomString(1000);
Run Code Online (Sandbox Code Playgroud)
randomString(x) 只生成一个长度为x的随机字符串.
然后我像这样大量实例化对象:
var arr = new Array();
for (var i = 0; i < 1000; i++) {
arr.push(new TestObjectFat()); // or new TestObjectThin()
}
Run Code Online (Sandbox Code Playgroud)
并检查浏览器进程(谷歌浏览器)的内存使用情况.我知道,那不是很准确......
但是,在这两种情况下,内存使用量都按预期显着增加(大约30 MB TestObjectFat),但原型变体使用的内存不多(约26 MB TestObjectThin).
我还检查了TestObjectThin实例在其"text"属性中包含相同的字符串,因此它们实际上使用了原型的属性.
现在,我不太清楚该怎么想.原型设计似乎根本不是最大的内存保护程序.
我知道原型设计是出于许多其他原因的一个好主意,但我特别关注这里的内存使用情况.原型变体使用几乎相同数量的内存的任何解释?我错过了什么吗?
我需要将URL与字符串模式进行匹配,但我想避免RegExp来使模式保持简单和可读性。
我希望能够有类似的模式http://*.example.org/*,这应该与/^http:\/\/.*\.example.org\/.*$/RegExp中的模式相同。该RegExp还应说明为什么我要使其更具可读性。
基本上,我想要适用于URL的类似glob的模式。问题是:普通的glob实现被/视为分隔符。就是说,http://foo.example.org/bar/bla这与我的简单模式不符。
因此,可以忽略斜线的glob的实现会很棒。有这样的事情或类似的东西吗?
我正在尝试include_bytes!在Iron应用程序中发送包含在二进制文件中的文件.我想最终为我的应用程序提供一个文件,它只需要很少的HTML,CSS和JS文件.这是一个我正在摆弄的小型测试设置:
extern crate iron;
use iron::prelude::*;
use iron::status;
use iron::mime::Mime;
fn main() {
let index_html = include_bytes!("static/index.html");
println!("Hello, world!");
Iron::new(| _: &mut Request| {
let content_type = "text/html".parse::<Mime>().unwrap();
Ok(Response::with((content_type, status::Ok, index_html)))
}).http("localhost:8001").unwrap();
}
Run Code Online (Sandbox Code Playgroud)
当然,这种index_html类型不起作用&[u8; 78]
src/main.rs:16:12: 16:26 error: the trait `modifier::Modifier<iron::response::Response>` is not implemented for the type `&[u8; 78]` [E0277]
src/main.rs:16 Ok(Response::with((content_type, status::Ok, index_html)))
Run Code Online (Sandbox Code Playgroud)
由于我对Rust和Iron很新,我不知道如何处理这个问题.我试图从Iron文档中学到一些东西,但我认为我的Rust知识不足以真正理解它们,特别是这个modifier::Modifier特性应该是什么.
我怎样才能做到这一点?我可以将我的静态资源类型转换为Iron将接受的东西,或者我需要以Modifier某种方式实现此特征吗?
当从具有PDO的DB读取时,我需要一种方法来确定数据库列的类型(varchar/numeric/date/...).
从DB中获取值时,无论表列的实际类型如何,PDO都只生成字符串值.
是否有任何非驱动程序的特定方式来获取此信息?我知道有SQL语句可以检索任何给定表的类型,但我更喜欢更通用的解决方案.
编辑: PDOStatement :: getColumnMeta()对我没用,因为我目前使用的PDO驱动程序(Oracle)不支持它.
Twig似乎插入了一个\n内容之后{% include %}.我可以用这个简单的例子重现问题:
test.php的:
<?php
require "vendor/autoload.php";
$loader = new Twig_Loader_Filesystem(__DIR__);
$twig = new Twig_Environment($loader, []);
echo $twig->render('test.twig', ['foo' => 'bar']);
Run Code Online (Sandbox Code Playgroud)
test.twig:
{% include "include.twig" %}{{ foo }}
Run Code Online (Sandbox Code Playgroud)
include.twig:
Foo:
Run Code Online (Sandbox Code Playgroud)
我希望输出为:
Foo:bar
Run Code Online (Sandbox Code Playgroud)
但它是:
Foo:
bar
Run Code Online (Sandbox Code Playgroud)
有没有办法阻止这种情况?Twig的空白控制{%- ... -%}不会影响这一点.
更新:
正如在sjagr的回答中所提到的,实际上0x0a在模板的末尾有一个额外的字符,即使在VIM中也没有显示:set binary.
知道我知道为什么会这样,但我仍然需要一个解决方案.使用十六进制编辑器检查所有模板不是一个可行的选择.
php ×3
javascript ×2
command-line ×1
database ×1
glob ×1
inheritance ×1
iron ×1
newline ×1
oracle ×1
pdo ×1
plsql ×1
profiling ×1
prototype ×1
regex ×1
rust ×1
sql ×1
sql-server ×1
t-sql ×1
twig ×1
types ×1
url ×1
vagrant ×1
virtualbox ×1
whitespace ×1
xdebug ×1