반응형
선택하지 않은 쿼리에 대한 사용자 지정 함수 케이크 쿼리 작성기
저는 mariadb를 사용하고 싶습니다.INET_ATON()
Cakephp Query Builder를 사용하여 삽입 쿼리에 있습니다.
INSERT INTO failed_logins
SET email = 'example@test.com', ip_address = INET_ATON('192.168.0.1'), sent_email = 1;
그러면 데이터를 검색하고 싶습니다.INET_NTOA()
선택된 쿼리에서
SELECT id, email, INET_NTOA(ip_address) AS ip_address, sent_email FROM failed_logins;
케이크 쿼리 작성기에서 삽입하고 선택하는 기능을 사용하려면 어떻게 해야 합니까?
Using SQL functions(SQL 함수 사용)을 확인했지만 문제를 해결할 수 없었습니다.
많은 시간을 뛰어다닌 후에 저는 그것을 성공적으로 할 수 있었습니다.
$this->connection->newQuery()->into('failed_logins');
$newIp = $query->func()->inet_aton([$ip]);
$query->insert(['email', 'ip_address', 'sent_email'])->values(
['email' => $email, 'ip_address' => $newIp, 'sent_email' => $sentEmail]
)->execute()->lastInsertId();
꽤 복잡하고 IDE와 PHPStan은 "inet_aton" 함수가 정의되지 않았다는 경고를 보여줍니다.
나는 만약에. 만약에.values()
배열 나는 그냥 그것을 할 수 있었습니다.['ip_address' => "INET_ATON($ip)"]
편집: 댓글을 보는 것은 좋은 생각이 아닙니다.하지만 안전하게 유지되는 유사한 것이 가능합니다.->bind()
(아래 코드 조각).
편집: 제거됨'literal'
코드 스니펫에서 (고맙습니다 @ndm)
IDE 및 분석 도구 - 친숙한 솔루션
$this->connection->newQuery()->into('failed_logins');
$query->insert(
[
'email',
'ip_address',
'sent_email',
]
)->values(
[
'email' => $email,
'ip_address' => $query->newExpr("INET_ATON(:ip)"),
'sent_email' => $sentEmail,
]
)->bind(':ip', $ip, 'string')->execute()->lastInsertId();
언급URL : https://stackoverflow.com/questions/66470692/custom-functions-for-non-select-queries-cake-query-builder
반응형
'programing' 카테고리의 다른 글
스프링 데이터 jpa 쿼리에서 @lock timeout을 지정하는 방법은 무엇입니까? (0) | 2023.06.17 |
---|---|
익명 유형 선언 목록 (0) | 2023.06.17 |
VBA 문제집.사용자가 저장할지 묻는 메시지 없이 닫으시겠습니까? (0) | 2023.06.12 |
복잡한 조인이 있는 다른 테이블의 행 가져오기 (0) | 2023.06.12 |
파이썬에 아이덴티티 기능이 내장되어 있습니까? (0) | 2023.06.12 |