it-source

Wordpress - $wpdb - > insert - MySQL NOW()

criticalcode 2023. 3. 22. 21:38
반응형

Wordpress - $wpdb - > insert - MySQL NOW()

$wpdb-> 삽입 호출에서 MySQL NOW()를 사용할 수 있습니까?

다음 코드를 사용하면 NOW()가 동작하지 않습니다.

$data = array(
        'id' => NULL,
        'order' => serialize($_POST['data']['Order']),
        'created' => NOW(),
        'user_id' => $current_user->ID
    );

$wpdb->insert(ORDERS_TABLE, (array) $data );

WordPress를 사용하는 것이 표준 접근법이라고 생각합니다.current_time()mysql 타임스탬프 호환 포맷(UNIX 타임스탬프 포맷)을 지정하는 첫 번째 파라미터로 'mysql'을 전달하고 GMT 시간(기본값은 로컬)을 지정하는 두 번째 파라미터로 '1'을 전달합니다.

$data = array(
    'id' => NULL,
    'order' => serialize($_POST['data']['Order']),
    'created' => current_time('mysql', 1),
    'user_id' => $current_user->ID
);

$wpdb->insert(ORDERS_TABLE, $data);

current_time('mysql', 1)출력2012-07-18 12:51:13.

자세한 사항은 이쪽:http://codex.wordpress.org/Function_Reference/current_time

Wordpress 5.3 이상을 사용하는 모든 사용자에게 권장되는 접근법은 current_time이 아닌 wp_date를 사용하는 것입니다.

wp_date('Y-m-d H:i:s');

단어 "created"는 삽입 시 현재 날짜 및 시간인 "NOW()"만 있으면 된다는 것을 의미합니다.생성된 필드를 변경할 수 있습니다.

 ALTER TABLE `ORDERS_TABLE` CHANGE `created` `created` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP

쿼리에서 생성된 필드를 전혀 사용하지 않기 때문에 새 쿼리는 다음과 같이 표시됩니다.

$data = array(        
    'order' => serialize($_POST['data']['Order']),        
    'user_id' => $current_user->ID
);

$wpdb->insert(ORDERS_TABLE, (array) $data );

쿼리 "created"를 실행하면 기본값이 적용되어 NOW()와 같게 됩니다.또한 "id"를 생략하고 기본값도 취득할 수 있습니다.이 필드는 auto incremented 필드라고 생각됩니다.

현재로선 NOW()와 같은 SQL 함수를 쉽게 전달할 수 있는지 확실하지 않습니다.$wpdb->insert()WordPress 내의 메서드$wpdb학급.

확장하기 위한 수업 작성 부족$wpdbclass, 내가 볼 수 있는 가장 간단한 방법은 class를 사용하는 것이다.$wpdb->query()method와 코드를 작성하여 변환합니다.$dataSQL 문자열로 배열하여 메서드에 전달합니다.

$sql = sprintf( 
    'INSERT INTO table (id, order, created, user_id) VALUES (%d, %d, %s, %d)',
    $data[id], $data['order'], $data['created'], $data['user_id'] 
);

$wpdb->update( $sql );

자세한 사항은 이쪽:http://codex.wordpress.org/Class_Reference/wpdb

오래된 토픽이지만 SQL 문 밖에서 NOW()를 사용하는 바보 같은 솔루션을 찾았는데 다음과 같이 작동합니다.

$mysql_now = $wpdb->get_row( "SELECT NOW() as dbNow", ARRAY_A );
echo $mysql_now['dbNow'];

천만예요.

언급URL : https://stackoverflow.com/questions/8566603/wordpress-wpdb-insert-mysql-now

반응형