Example #1
0
        /// <summary>
        /// 2 phase ctor.
        /// Prepares the command.
        /// </summary>
        /// <param name="pdo"></param>
        /// <param name="queryString"></param>
        /// <param name="options">Driver options. Optional.</param>
        internal void Prepare(PdoConnectionResource pdo, string queryString, PhpArray options)
        {
            pdo.ClosePendingReader();

            // initialize properties
            this.Connection  = pdo ?? throw new ArgumentNullException(nameof(pdo));
            this.queryString = queryString;

            //
            var actualQuery = Driver.RewriteCommand(queryString, options, out bound_param_map);

            _cmd = PDO.CreateCommand(actualQuery);

            //_cmd.Prepare(); // <-- compiles the query, needs parameters to be bound
        }
Example #2
0
        public virtual int exec(string statement)
        {
            this.ClearError();

            _connection.ClosePendingReader();

            using (var dbCommand = this.CreateCommand(statement))
            {
                try
                {
                    return(dbCommand.ExecuteNonQuery());
                }
                catch (System.Exception ex)
                {
                    this.HandleError(ex);
                    return(-1); // FALSE
                }
            }
        }
Example #3
0
 /// <summary>
 /// Closes pending data reader if any.
 /// </summary>
 internal void ClosePendingReader() => _connection.ClosePendingReader();