%PDF- %PDF-
| Direktori : /home/bitrix/www/bitrix/modules/main/lib/db/ |
| Current File : /home/bitrix/www/bitrix/modules/main/lib/db/mysqlisqlhelper.php |
<?php
namespace Bitrix\Main\DB;
use Bitrix\Main\ORM;
class MysqliSqlHelper extends MysqlCommonSqlHelper
{
/**
* Escapes special characters in a string for use in an SQL statement.
*
* @param string $value Value to be escaped.
* @param integer $maxLength Limits string length if set.
*
* @return string
*/
public function forSql($value, $maxLength = 0)
{
if ($maxLength > 0)
$value = substr($value, 0, $maxLength);
$con = $this->connection->getResource();
/** @var $con \mysqli */
return $con->real_escape_string($value);
}
/**
* Returns instance of a descendant from Entity\ScalarField
* that matches database type.
*
* @param string $name Database column name.
* @param mixed $type Database specific type.
* @param array $parameters Additional information.
*
* @return \Bitrix\Main\ORM\Fields\ScalarField
*/
public function getFieldByColumnType($name, $type, array $parameters = null)
{
switch($type)
{
case MYSQLI_TYPE_TINY:
case MYSQLI_TYPE_SHORT:
case MYSQLI_TYPE_LONG:
case MYSQLI_TYPE_INT24:
case MYSQLI_TYPE_CHAR:
return new ORM\Fields\IntegerField($name);
case MYSQLI_TYPE_DECIMAL:
case MYSQLI_TYPE_NEWDECIMAL:
case MYSQLI_TYPE_FLOAT:
case MYSQLI_TYPE_DOUBLE:
return new ORM\Fields\FloatField($name);
case MYSQLI_TYPE_DATETIME:
case MYSQLI_TYPE_TIMESTAMP:
return new ORM\Fields\DatetimeField($name);
case MYSQLI_TYPE_DATE:
case MYSQLI_TYPE_NEWDATE:
return new ORM\Fields\DateField($name);
}
//MYSQLI_TYPE_BIT
//MYSQLI_TYPE_LONGLONG
//MYSQLI_TYPE_TIME
//MYSQLI_TYPE_YEAR
//MYSQLI_TYPE_INTERVAL
//MYSQLI_TYPE_ENUM
//MYSQLI_TYPE_SET
//MYSQLI_TYPE_TINY_BLOB
//MYSQLI_TYPE_MEDIUM_BLOB
//MYSQLI_TYPE_LONG_BLOB
//MYSQLI_TYPE_BLOB
//MYSQLI_TYPE_VAR_STRING
//MYSQLI_TYPE_STRING
//MYSQLI_TYPE_GEOMETRY
return new ORM\Fields\StringField($name);
}
}