小编Wil*_*ill的帖子

我可以在PHP字符串中更改标签宽度(\ t)吗?

我甚至不确定它是否可行,但我想在PHP字符串中更改\ t的值.例如,目前如果我这样做:

echo "\t\tHello";
Run Code Online (Sandbox Code Playgroud)

输出是16个空格,后跟hello - 因此标签宽度为8个空格.有没有办法在字符串中使用\ t时将此默认选项卡宽度更改为另一个数字?

它并不是真的那么重要,我做了很多,明显的工作,只是想知道我是否错过了一些容易做的事情,却找不到.

php

3
推荐指数
1
解决办法
6811
查看次数

可以强制chrome按照它们存储的顺序迭代"字符串数字"键

我似乎只在chrome(而不是IE,FF)中遇到了一个有趣的问题.给出以下对象:

var myObj = {
  "59" : "Hello",
  "52" : "and",
  "50" : "how",
  "31" : "are",
  "65" : "you"
};
Run Code Online (Sandbox Code Playgroud)

通过for循环遍历此对象按以下顺序吐出内容:

for(var j in myObj) {  document.write(myObj[j] +', '); }

are, how, and, hello, you
Run Code Online (Sandbox Code Playgroud)

所有其他主要浏览器都以"正确"的顺序给出它.Chrome将键视为整数而不是字符串.问题是我有一个json数据源我无法更改,我需要按照它们在对象中的顺序访问这些项目.

任何人都可以建议在Google Chrome中执行此操作吗?

javascript google-chrome

3
推荐指数
1
解决办法
214
查看次数

使用mySQL变量

是否有可能在一系列SQL语句中获取字段的值并使用它来命名另一个语句中的表?我不确定这是否清楚,所以这是一个psudo - 我正在尝试做的例子:

// dataType is equal to "ratings"
@var = select dataType from theTable where anID = 5;

// needs to run as "from ratings-table"
select field1,field2 from @var-table where anID = 5;
Run Code Online (Sandbox Code Playgroud)

我一直在阅读http://dev.mysql.com/doc/refman/5.0/en/user-variables.html,但要么我没有正确理解这一点,要么它不是我正在寻找的解决方案.

mysql variables

2
推荐指数
1
解决办法
700
查看次数

基于连接更新单个表中的行

我有一个查询,生成我想要更新的行,查询如下所示:

SELECT item.item_id
FROM   items
JOIN   users2items
ON     users2items.item_id = items.item_id
WHERE  users2items.user_id = 10;
Run Code Online (Sandbox Code Playgroud)

现在我需要为项目表中与该查询匹配的每条记录更新一列; 目前我正在使用结果集,然后为每个结果构建和执行查询,但我认为可能有一种方法可以直接在SQL中执行此操作.我正在执行的各个陈述是:

UPDATE items SET is_usable = 1 WHERE item_id = $current_id
Run Code Online (Sandbox Code Playgroud)

所以它按原样运行,但我正在尝试学习是否有纯SQL方法来实现它

mysql sql

2
推荐指数
1
解决办法
768
查看次数

MySQL - 为什么这个查询不使用索引(根据解释)

我正在玩EXPLAIN并在这个简单的查询上运行它:

EXPLAIN SELECT * FROM actions WHERE user_id = 17;
Run Code Online (Sandbox Code Playgroud)

看到这个输出很惊讶:

select_type    SIMPLE
table          actions
type           ALL
possible_keys  user_id
key            null
key_len        null
ref            null
rows           6
extra          Using where
Run Code Online (Sandbox Code Playgroud)

我的理解是这意味着在查找中没有使用索引,这是正确的吗?(此时表中总共只有6行,但会有更多行)

表定义是(inpart):

CREATE TABLE `actions` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `user_id` int(10) unsigned NOT NULL,
  ...
  PRIMARY KEY (`id`),
  KEY `user_id` (`user_id`)
) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=latin1
Run Code Online (Sandbox Code Playgroud)

为什么不使用user_id上的键值?

mysql indexing

2
推荐指数
1
解决办法
623
查看次数

Zend Framework SQL注入保护

我正在看一些我正在使用的开发人员使用的Zend Framework代码,在其中我看到以下内容:

$select = new Zend_Db_Select($DB);
$sql = $select->where("id ='".$id."'");             
Run Code Online (Sandbox Code Playgroud)

现在,$ id在任何地方都没有消毒,而且我的印象是,如果你使用占位符,你只能通过Zend注入保护 - 这个字符串很脆弱,我想.

该代码的作者声称zend即使在这种情况下也会处理它,尽管我在文档中找不到它所说的内容.

如果这实际上是安全的,那么任何人都可以清理吗?

sql zend-framework

2
推荐指数
1
解决办法
7864
查看次数

查询多行的每一行的成本时间数量和总和

我很难让这个工作起来.我有一个看起来像这样的表:

quantity  cost
--------  ----
5         150
2         100
Run Code Online (Sandbox Code Playgroud)

我想选择一个应该是的结果950.当我使用组时,整个数量乘以整个成本

mysql

2
推荐指数
1
解决办法
1190
查看次数

如何匹配"两个或多个单词"

在给定的字符串中,我试图验证至少有两个单词,其中一个单词被定义为任何非数字字符,例如

// Should pass
Phil D'Sousa
Billy - the - Kid

// Should Fail
Joe
454545 354434
Run Code Online (Sandbox Code Playgroud)

我认为这应该有效:

(\b\D*?\b){2,}
Run Code Online (Sandbox Code Playgroud)

但事实并非如此.

javascript regex

1
推荐指数
1
解决办法
4024
查看次数

为什么这个emberjs模板没有更新?

我正在学习emberjs,我做了一个非常简单的例子.HTML模板是:

<script type="text/x-handlebars">
    Hello <b>{{App.appOwner}}</b>
</script>
Run Code Online (Sandbox Code Playgroud)

然后javascript是:

App = Ember.Application.create({
  appOwner : 'Erik'
});


App.appOwner = 'Tom';
Run Code Online (Sandbox Code Playgroud)

这几乎与您的期望相符.emberjs.com文档说模板是自动更新的 - 所以我添加了这个:

$(document).click(function() {
  console.log('HERE!');
  App.appOwner = 'Alphonse';
});
Run Code Online (Sandbox Code Playgroud)

这出乎意料地失败了.我添加了console.log只是为了确保调用click处理程序,它就是这样.为什么不更新?

javascript ember.js

1
推荐指数
1
解决办法
186
查看次数

setInterval - 我可以让它识别"this"

我甚至不确定如何提出这个问题,但我已经将代码减少到最简单的可能示例:

function Handler() {}
Handler.prototype.texts = [];
Handler.prototype.add = function(d) {
  this.texts.push(d);
};
Handler.prototype.tick = function() {
  console.log( this.texts );
};

var x = new Handler();
setInterval( x.tick, 5000 );

x.add('beatles');
Run Code Online (Sandbox Code Playgroud)

当setInterval调用x.tick时,它为this.texts提供一个undefined值 - 当然,也就是this.虽然我可以解决问题

setInterval( x.tick, 5000, x );

// and ... in the prototype
Handler.prototype.tick = function(myObj) {
    console.log( myObj.texts );
}
Run Code Online (Sandbox Code Playgroud)

感觉有点笨重.有一个更好的方法吗?

javascript

1
推荐指数
1
解决办法
52
查看次数

为什么这个方法实际上不影响SQL查询?

我有一个方法,它可以根据一组标准从数据库中返回一些项目:

scope :expired_not_marked, lambda { |client|
items = where('items.status > 0 AND items.expires_at < ? AND items.expired_at IS NULL AND (winning_bid_id IS NULL OR winner_id IS NULL)', Time.now)
unless client.nil?
    items.where('items.client_id = ?', client.id)
end
}
Run Code Online (Sandbox Code Playgroud)

它被称为Item.expired_not_marked nil.当我从IRB运行它时,我得到了很多结果,但它显示正在执行的SQL查询:

SELECT `items`.* FROM `items` 
Run Code Online (Sandbox Code Playgroud)

显然这不是原作者的意图.结果,一遍又一遍地处理相同的项目.

为什么会破坏,我该如何解决它.where子句似乎是正确的.上述方法在item.rb模型中.

ruby ruby-on-rails

1
推荐指数
1
解决办法
71
查看次数

使用锚点加载发送帖子数据的页面

我甚至不确定这是否可行,但我需要通过用户点击的链接将POST数据发送到页面.可以这样做吗?

要清楚,我不希望数据返回到当前页面; 目标页面应该在浏览器中加载,就像用户提交了表单一样,但我需要在没有表单的情况下发送帖子数据,如果可能的话

javascript jquery

0
推荐指数
1
解决办法
3203
查看次数