return 1;
}
+static int pdo_sqlite_set_attr(pdo_dbh_t *dbh, long attr, zval *val TSRMLS_DC)
+{
+ pdo_sqlite_db_handle *H = (pdo_sqlite_db_handle *)dbh->driver_data;
+
+ switch (attr) {
+ case PDO_ATTR_TIMEOUT:
+ convert_to_long(val);
+ sqlite3_busy_timeout(H->db, Z_LVAL_P(val) * 1000);
+ return 1;
+ }
+}
+
static PHP_FUNCTION(sqlite_create_function)
{
/* TODO: implement this stuff */
sqlite_handle_begin,
sqlite_handle_commit,
sqlite_handle_rollback,
- NULL, /* set_attribute */
+ pdo_sqlite_set_attr,
pdo_sqlite_last_insert_id,
pdo_sqlite_fetch_error_func,
pdo_sqlite_get_attribute,
}
if (param->is_param) {
+
+ if (param->paramno == -1) {
+ param->paramno = sqlite3_bind_parameter_index(S->stmt, param->name) - 1;
+ }
+
switch (PDO_PARAM_TYPE(param->param_type)) {
case PDO_PARAM_LOB:
case PDO_PARAM_STMT:
return 0;
+
+ case PDO_PARAM_NULL:
+ i = sqlite3_bind_null(S->stmt, param->paramno + 1);
+ if (i == SQLITE_OK)
+ return 1;
+ pdo_sqlite_error_stmt(stmt);
+ return 0;
+
case PDO_PARAM_STR:
default:
- if (param->paramno == -1) {
- param->paramno = sqlite3_bind_parameter_index(S->stmt, param->name) - 1;
- }
- convert_to_string(param->parameter);
i = sqlite3_bind_text(S->stmt, param->paramno + 1,
Z_STRVAL_P(param->parameter),
Z_STRLEN_P(param->parameter),