小编Ker*_*mit的帖子

在PHP中模拟LIKE

有没有办法用相同的语法在PHP中模拟SQL的LIKE运算符?(%以及_通配符和通用$escape转义字符)?这样:

$value LIKE $string ESCAPE $escape
Run Code Online (Sandbox Code Playgroud)

你可以有一个函数,在不使用数据库的情况下返回PHP的评估吗?(考虑到$value,$string并且$escape已经设置了值).

php sql string pcre sql-like

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

如何使用pyodbc连接到vertica

我已经阅读了有关该文件odbc.iniVertica文档iODBC 文档.我也看到了一个带有相同错误的问题,但无法让连接字符串按照上一个问题的答案中的建议工作.

我目前拥有的:

/etc/odbcinst.ini

[HPVertica]
Description = HP Vertica ODBC Driver
Driver = /opt/vertica/lib64/libverticaodbc.so

/etc/odbc.ini

[ODBC Data Sources]
VerticaDB1 = db1 database on HP Vertica

[VerticaDB1]
Description = db1 database on HP Vertica
Driver = HPVertica
Database = db1
Servername = 10.0.0.67
UID = dbadmin
PWD = 
Port = 5433
Locale = en_GB

[ODBC]
Threading = 1

~/.odbc.ini

[DEFAULT]

Driver = VerticaDB1

测试用 isql

[root@ip-10-0-0-67 /]# echo "select 1;" | isql …

python unixodbc pyodbc vertica

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

pivot和cascade null列

我有一个表格,可以保存特定月份的值:

| MFG |       DATE | FACTOR |
-----------------------------
|   1 | 2013-01-01 |      1 |
|   2 | 2013-01-01 |    0.8 |
|   2 | 2013-02-01 |      1 |
|   2 | 2013-12-01 |   1.55 |
|   3 | 2013-01-01 |      1 |
|   3 | 2013-04-01 |    1.3 |
|   3 | 2013-05-01 |    1.2 |
|   3 | 2013-06-01 |    1.1 |
|   3 | 2013-07-01 |      1 |
|   4 | 2013-01-01 |    0.9 |
| …

sql-server pivot sql-server-2008

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

PHP中的fputcsv不会写入文件

我已经搜索和搜索并进行了大量的调试,因为我的生活无法弄清楚为什么fputcsv不能为我工作.

我可以成功打开.csv文件并写入它.

我的调试证明数组已正确加载,并且foreach循环正常工作.但是,fputcsv函数根本无法写入任何内容.我删除了所有可能导致URL等问题的字符串,但它仍然无法写入.

我是唯一可以访问此环境的人,所以我知道它不是文件锁冲突.我可以创建文件并写入它,所以我知道它不是权限问题.而且,我从foreach循环得到调试输出,所以我知道它不是数组或循环的问题.

我将在下面提供我的代码和调试日志......

$posts_meta = array(
    'twitter_title'       => $this_title,
    'twitter_brandtag'    => $this_brandtag,
    'twitter_hashtags'    => $this_hashtags,
    'twitter_iterations'  => $this_iteration,
    'twitter_timing'      => $this_timing,
    'twitter_time'        => $this_time,
    'twitter_id'          => $post_id,
 );

// Debuging
file_put_contents("/blog/debug.txt", "About to write CSV file.\n", FILE_APPEND);
file_put_contents("/blog/debug.txt", print_r($posts_meta, true)."\n", FILE_APPEND);

$myfile = fopen('/blog/pdm_twitter_ouptut.csv', 'a+');

// More debugin
file_put_contents("/blog/debug.txt", "myfile handle = ".$myfile."\n", FILE_APPEND);
fwrite($myfile, "This file is open and working.\r\n");

foreach ($posts_meta as $fields){
    $fresponse = fputcsv($myfile, $fields);

    // A little more debugging...
    file_put_contents("/blog/debug.txt", $fields."\n", FILE_APPEND);
} …
Run Code Online (Sandbox Code Playgroud)

php fputcsv

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

设置xact_abort并尝试一起捕获

我在我的sp中有一个try catch块,在try中只有一个insert语句.如果是pk违规则捕获检查错误代码,如果是则更新.但有时我得到"当前事务无法提交,不能支持写入日志文件的操作.回滚事务.

在批处理结束时检测到不可提交的事务.事务被回滚."所以我添加了xact_abort,但后来我继续得到"EXECUTE后的事务计数表明BEGIN和COMMIT语句的数量不匹配."我发现了这个 .http://www.ashishsheth.com/post /2009/08/14/Set-XACT_ABORT-ON-and-TryCatch-block-in-Sql-Server-2005.aspx

如果这是真的.如果我的try块中有xact_abort错误,我的catch代码是否会运行?

sql-server try-catch xact-abort

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

在Vertica中查询完成时如何显示查询时间?

使用vsql时,我想看看查询完成后运行多长时间.例如,当我运行:

select count(distinct key) from schema.table;
Run Code Online (Sandbox Code Playgroud)

我希望看到如下输出:

5678
(1 row)
total query time: 55 seconds.

如果这是不可能的,还有另一种方法来衡量查询时间吗?

sql vertica vsql

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

如何创建uiview的副本(不是指向原始uiview的指针)

我想创建一个a的副本UIView,我不想使用,NSKeyedArchiver因为我经常创建许多视图的副本,并且使用NSKeyedArchiver速度很慢.

我听说过,copy或者initWithZone:谷歌搜索它发现它不好UIView.我不想要一个指向原始视图的副本,因为对其进行的任何更改也会对复制的内容进行更改UIView.

iphone xcode uiview nscopying ipad

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

如何删除数字并保持点后的其余部分

对不起,我无法在标题中清楚地解释.我用其他语言学习数学我不知道它叫什么.

我有这些价值观.

$input = 13.2156;
$input = 45.232;
$input = 1193.215624;
Run Code Online (Sandbox Code Playgroud)

我想在PHP中使用一个函数来获取点之后的内容,就是这种情况

$input = 13.2156;     // 0.2156
$input = 45.232;      // 0.232
$input = 1193.215624; // 0.215624
Run Code Online (Sandbox Code Playgroud)

我知道intval()反其道而行之.我想要相反的相反.:d

php

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

带有包含未转义通配符“%”(百分比)或“_”(下划线)的转义字符串的 mysql LIKE 语句是否容易受到攻击?

假设我们有以下代码(用于某种搜索或类似):

$stmt = $pdo->prepare("SELECT * FROM users WHERE username LIKE ?");
$stmt->execute(array('%' . $username . '%'));
Run Code Online (Sandbox Code Playgroud)

提供的用户名已正确转义,但字符%(= 0 或更多任意字符)和_(= 恰好 1 个任意字符)被 MySQL 解释为通配符。

我知道用户可以输入%或 the_进行搜索,如果我希望搜索功能正常工作,我应该转义它。(在类似的情况下set_pt并获得setopt结果)。

但我的问题是:有人可以利用这个吗?如果是,那么有人会如何利用这一点以及如何防止它?下面的功能够用吗?

function escape_like_string($str) {
  return str_replace(Array('%', '_'), Array('\%', '\_'), $str);
}
Run Code Online (Sandbox Code Playgroud)

我能想到的一种可能性是输入大量的%,因此服务器需要分配大量内存。这行得通吗?

php mysql escaping wildcard sql-like

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

更新 MySQL 中的唯一键或主键

我正在构建一个供客户自己使用的数据库管理工具,并且在处理主键/唯一键更新的可能性时遇到了一些问题。因此,鉴于更新的数据是由 PHP 脚本逐行传递的,这就是我想出的(从“立即”到“一段时间后”):

  1. 删除/插入而不是更新(糟糕,我现在......):

    DELETE FROM table WHERE unique_key=x;
    DELETE FROM table WHERE unique_key=y;
    INSERT INTO table VALUES (unique_key=y, field=record1), (unique_key=x, field=record2);
    
    Run Code Online (Sandbox Code Playgroud)
  2. 更改我的主键/唯一键,然后用修改后的值替换它们:

    UPDATE table SET unique_key=x* WHERE unique_key=x;
    UPDATE table SET unique_key=y* WHERE unique_key=y;
    UPDATE table SET unique_key=y WHERE unique_key=x*;
    UPDATE table SET unique_key=x WHERE unique_key=y*;
    
    Run Code Online (Sandbox Code Playgroud)
  3. 向我的所有表添加一个不可修改的 auto_increment 字段“id”,作为代理主键

现在,我正在为所有内容添加“id”字段。其他选择?

mysql primary-key sql-update

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