developerm 发表于 2016-1-4 16:39:25

求助,新手在使用ci操作数据库时使用数据库中的函件语法

第一次接触ci,版本是3.x,在使用ci操作数据时语法求助
insert 时,我需要使用到uuid,不知道如何将upper(replace(uuid(),'-','')),写到代码中
$data = array(
                'user_id' => replace(uuid(),'-',''),   //此处不知如何写,请指教
      'user_name' => $this->input->post('email')
);

    return $this->db->insert('user', $data);

developerm 发表于 2016-1-4 17:24:10

Closer 发表于 2016-1-4 17:19
Message: Call to undefined function replace()
是告訴你他呼叫不到這個方法名
因為你這樣用 replace(uuid ...

我现在想使用uuid做为唯一编码,uuid是mysql 自带的,和ci没关系
因此,我想在ci语句中直接转换到sql 语句中,直接使用查询到uuid的函数,其中是替换掉'-'的字符

为啥我使用以下语句:
$query = $this->db->query('select uuid()');
        $row = $query->row();
返回结果为空,语句我可以直接在数据库中执行。

developerm 发表于 2016-1-4 17:57:36

Closer 发表于 2016-1-4 17:42
這就是兩回事了
我說沒有選擇哪個是指你呼叫 $row = $query->row(); 之後
應該是直接 echo $row; 吧

$row = $query->row();      $uuid = $row->uuid;


$row = $query->row_array();      $uuid = $row['uuid'];
都可以

Closer 发表于 2016-1-4 17:33:00

本帖最后由 Closer 于 2016-1-4 17:34 编辑


因為你輸出的是物件
呼叫他的時候要選擇你要哪個

$query = $this->db->query('select uuid() as id');
$row = $query->row_array(); // 若是物件則 $query->row()

echo '<pre>';
print_r($row['id']); // 若是物件則 $row->id
echo '</pre>';

Closer 发表于 2016-1-4 16:59:42

無關 CI,此為 PHP 函數問題

developerm 发表于 2016-1-4 17:08:46

是不是需要使用$this->load->helper(“XX")之类的》?

developerm 发表于 2016-1-4 17:09:48

会提示Message: Call to undefined function replace(),是不是需要加载什么?

Closer 发表于 2016-1-4 17:10:39

developerm 发表于 2016-1-4 17:08
是不是需要使用$this->load->helper(“XX")之类的》?

也許你該先查詢
PHP 是否有 replace() 與 uuid() 函數
它們的功能是甚麼

developerm 发表于 2016-1-4 17:13:31

Closer 发表于 2016-1-4 17:10
也許你該先查詢
PHP 是否有 replace() 與 uuid() 函數
它們的功能是甚麼

是mysql 中的内置函数,是的,我现在尝试先执行select replace(uuid(),"-","");语句;

Closer 发表于 2016-1-4 17:17:21

developerm 发表于 2016-1-4 17:13
是mysql 中的内置函数,是的,我现在尝试先执行select replace(uuid(),"-","");语句; ...

抱歉,我學識淺薄,還真的沒在 mysql 用過這兩個函數
問題也許是你混用了

Closer 发表于 2016-1-4 17:19:21

Message: Call to undefined function replace()
是告訴你他呼叫不到這個方法名
因為你這樣用 replace(uuid(),'-','')
請先這樣看他 replace()
這樣子是不是像是在呼叫某函數或是方法 ?

Closer 发表于 2016-1-4 17:23:27

你的需求比較特殊
應該要自行編寫 SQL 語法
使用 $query = $this->db->query('YOUR QUERY HERE');
參考 : CI 手冊 - 查詢
页: [1] 2
查看完整版本: 求助,新手在使用ci操作数据库时使用数据库中的函件语法