13 占位符
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
占位符表示为了执行查询,将会向该位置插入对应的文字。通过将其从查询本身中分离出来,我们允许数据库区分SQL语法与用户输入值,因此可以避免SQL注入。
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
占位符表示为了执行查询,将会向该位置插入对应的文字。通过将其从查询本身中分离出来,我们允许数据库区分SQL语法与用户输入值,因此可以避免SQL注入。
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
在静态查询中,所有的数据库表名都必须使用{}包装。这样,当你的Drupal安装使用了数据库前缀时,数据库系统就可以在表名前面添加一个前缀字符串。通过前缀化,就可以实现在同一个数据库上运行多个站点,或者在特定的情况下,可以实现多个站点之间的表共享。
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
Drupal中最常见的查询方式就是静态查询。静态查询通常会被一字不差的传递给数据库。通常只有选择查询才可以是静态的。
对于特别简单的查询,通常应该适用静态查询机制。对于更加复杂的查询,比如动态生成的查询或者其它类似查询,则应该使用动态查询。
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
由于Drupal的数据库层依赖于PHP的PDO库,所以你在选用主机时,确保你的PHP是支持PDO的。
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
$databases数组是一个至少包含3层的嵌套数组。第一层定义了数据库的键。第二层定义了数据库目标。每个目标的值就是对应的连接信息。通过实例我们可以更好的理解这一点。
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
一个给定的连接键,必须有一个或者多个目标。一个目标就是一个可选的备用数据库。如果请求的目标没有定义,系统就会自动采用“默认”目标,这是必须要定义的。
目标的主要用途就是主从数据库。默认目标是主SQL服务器。接着可以定义一个或多个“从”目标。对于标记为尝试使用从服务器的查询,如果从服务器可用,那么它们就会尝试访问“从”目标。如果有一个从服务器可用,那么就会打开对应的连接,并运行相应的查询。如果没有从服务器可用,那么查询就会运行在主服务器上。这样,就有了一个透明的回退,如果有从服务器可用,代码就会利用从服务器,如果没有从服务器可用,代码无需修改,仍然能够正常工作。
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
连接键是给定数据库连接的唯一标识符。对于给定站点,连接键必须是唯一的,并且必须有一个"default"连接,用作Drupal的主数据库。对于大多数站点,这可能也是唯一定义的连接。
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
定义一个数据库连接的主要方式,是使用settings.php中的$databases数组。从它的名字,我们就可以看出,$databases允许定义多个数据库连接。它还支持定义多个目标。只有在对该数据库运行查询时,才会打开对应的数据库连接,或者说是创建相应的连接对象。