本文整理汇总了PHP中SqlParser\Context::escape方法的典型用法代码示例。如果您正苦于以下问题:PHP Context::escape方法的具体用法?PHP Context::escape怎么用?PHP Context::escape使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SqlParser\Context
的用法示例。
在下文中一共展示了Context::escape方法的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: testEscape
public function testEscape()
{
Context::setMode('ANSI_QUOTES');
$this->assertEquals('"test"', Context::escape('test'));
Context::setMode();
$this->assertEquals('`test`', Context::escape('test'));
$this->assertEquals(array('`a`', '`b`'), Context::escape(array('a', 'b')));
}
示例2: build
/**
* @param Expression|Expression[] $component The component to be built.
* @param array $options Parameters for building.
*
* @return string
*/
public static function build($component, array $options = array())
{
if (is_array($component)) {
return implode($component, ', ');
} else {
if ($component->expr !== '' && !is_null($component->expr)) {
$ret = $component->expr;
} else {
$fields = array();
if (isset($component->database) && $component->database !== '') {
$fields[] = $component->database;
}
if (isset($component->table) && $component->table !== '') {
$fields[] = $component->table;
}
if (isset($component->column) && $component->column !== '') {
$fields[] = $component->column;
}
$ret = implode('.', Context::escape($fields));
}
if (!empty($component->alias)) {
$ret .= ' AS ' . Context::escape($component->alias);
}
return $ret;
}
}
示例3: build
/**
* @param Reference $component The component to be built.
* @param array $options Parameters for building.
*
* @return string
*/
public static function build($component, array $options = array())
{
return trim(Context::escape($component->table) . ' (' . implode(', ', Context::escape($component->columns)) . ') ' . $component->options);
}
示例4: build
/**
* @param CreateDefinition|CreateDefinition[] $component The component to be built.
* @param array $options Parameters for building.
*
* @return string
*/
public static function build($component, array $options = array())
{
if (is_array($component)) {
return "(\n " . implode(",\n ", $component) . "\n)";
} else {
$tmp = '';
if ($component->isConstraint) {
$tmp .= 'CONSTRAINT ';
}
if (isset($component->name) && $component->name !== '') {
$tmp .= Context::escape($component->name) . ' ';
}
if (!empty($component->type)) {
$tmp .= DataType::build($component->type, array('lowercase' => true)) . ' ';
}
if (!empty($component->key)) {
$tmp .= $component->key . ' ';
}
if (!empty($component->references)) {
$tmp .= 'REFERENCES ' . $component->references . ' ';
}
$tmp .= $component->options;
return trim($tmp);
}
}
示例5: build
/**
* @param Key $component The component to be built.
* @param array $options Parameters for building.
*
* @return string
*/
public static function build($component, array $options = array())
{
$ret = $component->type . ' ';
if (!empty($component->name)) {
$ret .= Context::escape($component->name) . ' ';
}
$columns = array();
foreach ($component->columns as $column) {
$tmp = Context::escape($column['name']);
if (isset($column['length'])) {
$tmp .= '(' . $column['length'] . ')';
}
$columns[] = $tmp;
}
$ret .= '(' . implode(',', $columns) . ') ' . $component->options;
return trim($ret);
}
示例6: build
/**
* @param Expression $component The component to be built.
*
* @return string
*/
public static function build($component)
{
if (!empty($component->expr)) {
$ret = $component->expr;
} else {
$fields = array();
if (!empty($component->database)) {
$fields[] = $component->database;
}
if (!empty($component->table)) {
$fields[] = $component->table;
}
if (!empty($component->column)) {
$fields[] = $component->column;
}
$ret = implode('.', Context::escape($fields));
}
if (!empty($component->alias)) {
$ret .= ' AS ' . Context::escape($component->alias);
}
return $ret;
}
示例7: build
/**
* @param FieldDefinition|FieldDefinition[] $component The component to be built.
*
* @return string
*/
public static function build($component)
{
if (is_array($component)) {
$ret = array();
foreach ($component as $c) {
$ret[] = static::build($c);
}
return "(\n" . implode(",\n", $ret) . "\n)";
} else {
$tmp = '';
if ($component->isConstraint) {
$tmp .= 'CONSTRAINT ';
}
if (!empty($component->name)) {
$tmp .= Context::escape($component->name) . ' ';
}
if (!empty($component->type)) {
$tmp .= DataType::build($component->type) . ' ';
}
if (!empty($component->key)) {
$tmp .= Key::build($component->key) . ' ';
}
if (!empty($component->references)) {
$tmp .= 'REFERENCES ' . Reference::build($component->references) . ' ';
}
$tmp .= OptionsArray::build($component->options);
return trim($tmp);
}
}
示例8: build
/**
* @param ParameterDefinition[] $component The component to be built.
* @param array $options Parameters for building.
*
* @return string
*/
public static function build($component, array $options = array())
{
if (is_array($component)) {
return '(' . implode(', ', $component) . ')';
} else {
$tmp = '';
if (!empty($component->inOut)) {
$tmp .= $component->inOut . ' ';
}
return trim($tmp . Context::escape($component->name) . ' ' . $component->type);
}
}
示例9: build
/**
* @param Key $component The component to be built.
*
* @return string
*/
public static function build($component)
{
$ret = $component->type . ' ';
if (!empty($component->name)) {
$ret .= Context::escape($component->name) . ' ';
}
$ret .= '(' . implode(',', Context::escape($component->columns)) . ')';
$ret .= OptionsArray::build($component->options);
return trim($ret);
}
示例10: replaceWithAliases
//.........这里部分代码省略.........
$old_table = $statement->name->table;
// Finding the aliased database name.
// The database might be empty so we have to add a few checks.
$new_database = null;
if (!empty($statement->name->database)) {
$new_database = $statement->name->database;
if (!empty($aliases[$old_database]['alias'])) {
$new_database = $aliases[$old_database]['alias'];
}
}
// Finding the aliases table name.
$new_table = $old_table;
if (!empty($aliases[$old_database]['tables'][$old_table]['alias'])) {
$new_table = $aliases[$old_database]['tables'][$old_table]['alias'];
}
// Replacing new values.
if ($statement->name->database !== $new_database || $statement->name->table !== $new_table) {
$statement->name->database = $new_database;
$statement->name->table = $new_table;
$statement->name->expr = null;
// Force rebuild.
$flag = true;
}
foreach ($statement->fields as $field) {
// Column name.
if (!empty($field->type)) {
if (!empty($aliases[$old_database]['tables'][$old_table]['columns'][$field->name])) {
$field->name = $aliases[$old_database]['tables'][$old_table]['columns'][$field->name];
$flag = true;
}
}
// Key's columns.
if (!empty($field->key)) {
foreach ($field->key->columns as $key => $column) {
if (!empty($aliases[$old_database]['tables'][$old_table]['columns'][$column['name']])) {
$field->key->columns[$key]['name'] = $aliases[$old_database]['tables'][$old_table]['columns'][$column['name']];
$flag = true;
}
}
}
// References.
if (!empty($field->references)) {
$ref_table = $field->references->table->table;
// Replacing table.
if (!empty($aliases[$old_database]['tables'][$ref_table]['alias'])) {
$field->references->table->table = $aliases[$old_database]['tables'][$ref_table]['alias'];
$field->references->table->expr = null;
$flag = true;
}
// Replacing column names.
foreach ($field->references->columns as $key => $column) {
if (!empty($aliases[$old_database]['tables'][$ref_table]['columns'][$column])) {
$field->references->columns[$key] = $aliases[$old_database]['tables'][$ref_table]['columns'][$column];
$flag = true;
}
}
}
}
} elseif ($statement->options->has('TRIGGER')) {
// Extracting the name of the old database and table from the
// statement to make sure the parameters are corect.
if (!empty($statement->table->database)) {
$old_database = $statement->table->database;
}
/**
* Old table name.
*
* @var string $old_table
*/
$old_table = $statement->table->table;
if (!empty($aliases[$old_database]['tables'][$old_table]['alias'])) {
$statement->table->table = $aliases[$old_database]['tables'][$old_table]['alias'];
$statement->table->expr = null;
// Force rebuild.
$flag = true;
}
}
if ($statement->options->has('TRIGGER') || $statement->options->has('PROCEDURE') || $statement->options->has('FUNCTION') || $statement->options->has('VIEW')) {
// Repalcing the body.
for ($i = 0, $count = count($statement->body); $i < $count; ++$i) {
/**
* Token parsed at this moment.
*
* @var Token $token
*/
$token = $statement->body[$i];
// Replacing only symbols (that are not variables) and unknown
// identifiers.
if ($token->type === Token::TYPE_SYMBOL && !($token->flags & Token::FLAG_SYMBOL_VARIABLE) || ($token->type === Token::TYPE_KEYWORD && !($token->flags & Token::FLAG_KEYWORD_RESERVED) || $token->type === Token::TYPE_NONE)) {
$alias = $this->getAlias($aliases, $token->value);
if (!empty($alias)) {
// Replacing the token.
$token->token = Context::escape($alias);
$flag = true;
}
}
}
}
return $statement->build();
}
示例11: build
/**
* @param ParameterDefinition[] $component The component to be built.
*
* @return string
*/
public static function build($component)
{
$ret = array();
foreach ($component as $c) {
$tmp = '';
if (!empty($c->inOut)) {
$tmp .= $c->inOut . ' ';
}
$ret[] = trim($tmp . Context::escape($c->name) . ' ' . DataType::build($c->type));
}
return '(' . implode(', ', $ret) . ')';
}
示例12: build
/**
* @param Reference $component The component to be built.
*
* @return string
*/
public static function build($component)
{
return trim(Context::escape($component->table) . ' (' . implode(', ', Context::escape($component->columns)) . ') ' . OptionsArray::build($component->options));
}