小编Nic*_*ole的帖子

PHP,MySQL - 你能区分匹配的行和受影响的行吗?

我正在尝试编写一个有点智能的PHP-MySQL数据库处理器.当此处理器决定需要进行更新时,我想报告它是否真的成功.我以为我可以用mysql_affected_rows......

// Example:
// After running query "UPDATE mytable SET name='Test' WHERE ID=1"
$result = mysql_affected_rows();
if ($result >= 1) { /* Success */ }
Run Code Online (Sandbox Code Playgroud)

如果,例如,不存在与没有行ID = 1,那么$result将是0.

但是,事实证明,PHP mysql_affected_rows是实际受影响的行,如果行存在但可能仍为"测试" ,则可能仍为0name.(PHP文档甚至说这是事实).

如果我在命令行中运行它,我会获得有关查询的以下元信息:

Query OK, 0 rows affected (0.01 sec)
Rows matched: 1  Changed: 0  Warnings: 0
Run Code Online (Sandbox Code Playgroud)

有没有办法让我在PHP中获得"Rows matching"值而不是受影响的行?

[ 编辑 ]:我应该注意,我知道我可以运行一个单独的查询,但为了性能,我不想这样做.

php mysql

11
推荐指数
2
解决办法
6414
查看次数

可以使用pushState

有谁知道一个库确定是否可以使用pushState?

我在用这个:

if(window.history.pushState){
    window.history.pushState(null, document.title, path);
}else{
    location.pathname = path;
}
Run Code Online (Sandbox Code Playgroud)

但我刚刚发现Safari 5.0.2中存在一个错误,即使上述测试通过,也会导致它无法正常工作:http://support.github.com/discussions/site/2263-line-links-broken.

我想可能还有其他陷阱,有人可能已经发现它们并将它们包裹起来但我还没有找到任何东西.

编辑: @Crescent Fresh

从我所看到的,似乎pushState推送到历史堆栈并更改URL但不更新location.pathname.在我的代码中,我使用setInterval来检查路径是否已更新.

var cachedPathname = location.pathname;
if(window.history.pushState){
    cachedPathname = location.pathname;
    setInterval(function(){
        if(cachedPathname !== location.pathname){
            cachedPathname = location.pathname;
            //do stuff
        }
    }, 100);
}
Run Code Online (Sandbox Code Playgroud)

在Safari 5.0.2中,当pushState更改url时,location.pathname不会更改.这适用于其他浏览器和Safari版本.

javascript pushstate

11
推荐指数
2
解决办法
9979
查看次数

为什么对这个Java泛型方法定义有警告?

我注意到如果我在方法签名上使用泛型来实现类似于共变量返回类型的东西,它就像我想的那样工作,除了它产生一个警告:

interface Car {
    <T extends Car> T getCar();
}

class MazdaRX8 implements Car {
    public MazdaRX8 getCar() { // "Unchecked overriding" warning
        return this;
    }
}
Run Code Online (Sandbox Code Playgroud)

使用上面的代码,我的IDE会发出警告:"未经检查的覆盖:返回类型需要未经检查的转换.发现:'MazdaRX8',需要'T'"

这个警告意味着什么?

 

这对我来说没什么意义,谷歌没有提出任何有用的东西.为什么这不作为以下接口的无警告替代(由于Java允许使用共变体返回类型,这也是无警告的)?

interface Car {
    Car getCar();
}
Run Code Online (Sandbox Code Playgroud)

java generics compiler-warnings

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

JavaScript中的"new Number(...)"和"Number(...)"有什么区别?

在Javascript中,将字符串转换为数字可靠方法之一是Number构造函数:

var x = Number('09'); // 9, because it defaults to decimal
Run Code Online (Sandbox Code Playgroud)

这个问题的启发,我开始疑惑 - 上面和之间的区别是什么:

var x =new Number('09');
Run Code Online (Sandbox Code Playgroud)

Number当然看起来更好,但似乎对构造函数的使用略显不合适.没有新的使用它是否有任何副作用或任何差异?如果没有区别,为什么不,的目的是什么?

javascript language-features language-design

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

正则表达式匹配一个或两个引号,但不是连续三个

对于我的生活,我无法想象这一个.

我需要搜索以下文本,仅匹配粗体引号:

不匹配:"""这是一个python docstring"""

匹配:"这是一个常规字符串"

匹配:"" ←这是一个空字符串

我怎么能用正则表达式做到这一点?

这是我尝试过的:

不起作用:

(?!"")"(?<!"")
Run Code Online (Sandbox Code Playgroud)

关闭,但不匹配双引号.

不起作用:

"(?<!""")|(?!"")"(?<!"")|(?!""")"
Run Code Online (Sandbox Code Playgroud)

我天真地认为我可以添加我不想要的替代品,但逻辑最终会逆转.这个匹配所有内容,因为所有引号至少匹配一个替换项.

(请注意:我没有运行代码,因此使用的解决方案__doc__无济于事,我只是想在我的代码编辑器中查找和替换.)

regex string quotes

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

为什么这个泛型不能识别它的超类边界(Java)?

我有一个对象实例系统,其中包含对定义对象的引用.我为每个继承树都有一个顶级类.实例对象具有对应定义类的通用引用.

在getter中使用泛型,顶级对象的子类可以在不进行强制转换的情况下获得正确的定义类型.但是,再次进行子类化的抽象子类不能:

class Def { }

abstract class Animal<D extends Def> {
    D def;
    D getDef() { return def; }
}

class CatDef extends Def { }
class Cat extends Animal<CatDef> { }

abstract class BearDef extends Def { }
abstract class Bear<D extends BearDef> extends Animal<D> { }

class BlackBearDef extends BearDef { }
class BlackBear extends Bear<BlackBearDef> { }

class AnimalDefTest {
    public static void main (String... args) {
        Cat cat = new Cat();
        CatDef catDef = cat.getDef(); …
Run Code Online (Sandbox Code Playgroud)

java generics

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

需要使用泛型将列表过滤到特定子类

我有一个List包含某个超类(如Vehicle),我想写一个方法,返回该列表中的对象,这些对象是某个子类(如Car)的实例.

到目前为止我有这个,但它生成一个典型的"未检查"操作编译器警告:

public <T extends Vehicle> List<T> getVehiclesOfType(Class<T> type) {
    List<T> result = new ArrayList<T>();

    for (Vehicle vehicle : getVehicles()) {
        if (type.isAssignableFrom(vehicle.getClass())) {
            result.add(type.cast(vehicle)); // Compiler warning here
            // Note, (T)vehicle generates an "Unchecked cast" warning (IDE can see this one)
        }
    }

    return result;
}
Run Code Online (Sandbox Code Playgroud)

Warning: Note: Test.java uses unchecked or unsafe operations.
Run Code Online (Sandbox Code Playgroud)

我没有任何其他方法来完成这个(我找不到任何东西Collections,但有可能一些JDK方法可以做到),但理想情况下它会提供以下接口:

List<Car> cars = getVehiclesOfType(Car.class);
Run Code Online (Sandbox Code Playgroud)

我想知道为什么我在原始代码上收到编译器警告.

java generics compiler-warnings

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

如何从HTML表单运行PHP函数?

我是网络技术的绝对初学者.我知道我的问题很简单,但我不知道怎么做.例如,我有一个功能:

function addNumbers($firstNumber, $secondNumber)
{
    echo $firstNumber + $secondNumber;
}
Run Code Online (Sandbox Code Playgroud)

我有一个表格:

<form action="" method="post">
<p>1-st number: <input type="text" name="number1" /></p>
<p>2-nd number: <input type="text" name="number2" /></p>
<p><input type="submit"/></p>
Run Code Online (Sandbox Code Playgroud)

如何在我的文本字段中输入变量并通过按下按钮并按下我写入文本字段的参数来调用我的函数?例如,我写了5 - 第一个文本字段,10秒文本字段,然后我点击按钮,我在同一页面上得到结果15. 编辑 我试过这样做:

$num1 = $POST['number1'];
$num2 = $POST['number2'];
addNumbers($num1, $num2);
Run Code Online (Sandbox Code Playgroud)

但它不起作用,答案总是0.

php forms action function

7
推荐指数
2
解决办法
7万
查看次数

切割库存问题

我试图用最少的水滴或浪费来筑巢材料.

Table A

Qty Type Description Length

2   W    16x19       16'
3   W    16x19       12'
5   W    16x19       5'
2   W    5x9         3'


Table B

Type Description StockLength

W    16X19       20'
W    16X19       25'
W    16X19       40'
W    5X9         20'
Run Code Online (Sandbox Code Playgroud)

我一直在寻找贪心算法,Bin装箱,背包,1D-CSP,分支机构,蛮力等等.我很确定这是一个切割库存问题.我只是需要帮助来提供运行它的功能.我不只是有一个库存长度而是多个,并且用户可以输入他自己的不常见长度的库存.任何帮助计算在PHP中使用的函数或算法来提出最少的浪费所需的优化切割模式和库存长度将非常感激.

谢谢

php algorithm knapsack-problem

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

使用foreach制作的PHP变量

我有几个变量来自$ POST _ ['array']中的一个数组我想做一些循环,例如foreach,它为变量中的每个值创建一个变量名,并为它赋值.

例如,如果我有

$POST_['name'];
$POST_['last'];
$POST_['age'];
$POST_['sex'];
Run Code Online (Sandbox Code Playgroud)

我希望循环从$ _POST中的数组创建每个变量,其变量名称如下所示:

$name = 'John';
$last = 'Doe';
$age = '32';
$sex = 'male';
Run Code Online (Sandbox Code Playgroud)

注 - 该数组来自一个序列化的jquery字符串,它将表单中的所有变量和值组合成一个大字符串.

这可能吗?

php post

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