小编Dan*_*iel的帖子

多次使用绑定参数

我正在尝试为我的数据库实现一个非常基本的搜索引擎,其中用户可能包含不同类型的信息.搜索本身由几个联合选择组成,其中结果总是合并为3列.

然而,返回的数据是从不同的表中获取的.

每个查询使用$ term进行匹配,我将它作为准备参数绑定到":term".

现在,手册说:

调用PDOStatement :: execute()时,必须为要传递给语句的每个值包含唯一的参数标记.您不能在预准备语句中两次使用同名的命名参数标记.

我想,不是用termex替换每个:term参数:termX(x为term = n ++),必须有一个更好的解决方案吗?

或者我只需绑定X号:termX?

编辑发布我的解决方案:

$query = "SELECT ... FROM table WHERE name LIKE :term OR number LIKE :term";

$term = "hello world";
$termX = 0;
$query = preg_replace_callback("/\:term/", function ($matches) use (&$termX) { $termX++; return $matches[0] . ($termX - 1); }, $query);

$pdo->prepare($query);

for ($i = 0; $i < $termX; $i++)
    $pdo->bindValue(":term$i", "%$term%", PDO::PARAM_STR);
Run Code Online (Sandbox Code Playgroud)

好的,这是一个样本.我没有时间使用sqlfiddle,但如果有必要,我会稍后添加一个.

(
    SELECT
        t1.`name` AS resultText
    FROM table1 AS t1
    WHERE
        t1.parent = :userID
        AND …
Run Code Online (Sandbox Code Playgroud)

php mysql sql pdo

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

防止mPDF中的身体重叠页脚

我正在使用mPDF库生成PDF,我的页眉和页脚的大小取决于几个参数.

静态解决方案是设置页脚边距,这将解决重叠 - 但由于页脚的大小可能不同,这不是我感到满意的解决方案.有没有办法获得页脚尺寸并相应地应用保证金?

php mpdf

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

扩展PHP的类型提示

是否可以在Netbeans中使用另一个documentor标签扩展类型提示?

我正在寻找一种方法来扩展类型提示,使用一个@scope标记,允许包含的文件访问对象范围.

例:

file: template.php
<?php /* @var $this MyObject */
Run Code Online (Sandbox Code Playgroud)

这只允许对公共变量和方法进行类型提示.我希望做的是使用@scope标记扩展类型提示,允许它访问MyObject范围:

file: template.php
<?php /* @scope MyObject */
Run Code Online (Sandbox Code Playgroud)

这将使文件内容像在MyObject范围中那样运行并且$this会暗示私有方法.

现在,我没有为Netbeans平台开发的经验,但我有Java经验.如果我想完成这个,我会从哪里开始?

希望这不是一个问题的弱点.

php netbeans type-hinting

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

将节点导入新文档

我正在尝试将基础文档中的节点导入到新文档中,但是当我使用Document.importNode()方法时,它会生成异常.有趣的是,这个异常不包含消息,所以除了堆栈跟踪之外我几乎都是盲目的.(我是java的新手)

这是我的方法,它将创建一个新文档并导入节点:

  • this.Builder = DocumentBuilder
  • this.Element =节点

码:

public XMLSelection extract ()
{
    if (this.Element != null)
    {
        try
        {
            Document newDoc = this.Builder.newDocument();
            Node node = newDoc.importNode(this.Element, true);

            newDoc.appendChild(node);
            return new XMLSelection(newDoc);
        }
        catch(Exception e)
        {
            Debug.error("XMLSelection::extract", e);
        }
    }
    return null;
}
Run Code Online (Sandbox Code Playgroud)

堆栈跟踪:

02-06 14:27:53.328: W/System.err(9082): org.w3c.dom.DOMException
02-06 14:27:53.328: W/System.err(9082):     at org.apache.harmony.xml.dom.NodeImpl.setNameNS(NodeImpl.java:227)
02-06 14:27:53.328: W/System.err(9082):     at org.apache.harmony.xml.dom.ElementImpl.(ElementImpl.java:50)
02-06 14:27:53.328: W/System.err(9082):     at org.apache.harmony.xml.dom.DocumentImpl.createElementNS(DocumentImpl.java:336)
02-06 14:27:53.328: W/System.err(9082):     at org.apache.harmony.xml.dom.DocumentImpl.shallowCopy(DocumentImpl.java:156)
02-06 14:27:53.328: W/System.err(9082):     at org.apache.harmony.xml.dom.DocumentImpl.cloneOrImportNode(DocumentImpl.java:208)
02-06 14:27:53.328: W/System.err(9082):     at org.apache.harmony.xml.dom.DocumentImpl.importNode(DocumentImpl.java:222)
02-06 …
Run Code Online (Sandbox Code Playgroud)

java domdocument

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

PHP,将UTF-8转换为ASCII 8位

我正在尝试使用该iconv函数将字符串从UTF-8转换为ASCII 8位.该字符串旨在导入会计软件(根据SIE标准解析一些基本指令).

我现在正在运行的:

iconv("UTF-8", "ASCII", $this->_output)
Run Code Online (Sandbox Code Playgroud)

这适用于会计软件#1,但软件#2抱怨编码.标准规定的编码是:IBM PC 8-bit extended ASCII (Codepage 437).

我的问题是,什么版本的ASCII是PHP编码我的字符串,如果不是指定的 - 我如何编码字符串相应的标准规范?

php encoding ascii utf-8 iconv

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

标签 统计

php ×4

ascii ×1

domdocument ×1

encoding ×1

iconv ×1

java ×1

mpdf ×1

mysql ×1

netbeans ×1

pdo ×1

sql ×1

type-hinting ×1

utf-8 ×1