Implement mysqli_fetch_column - #6798

Merged
kamil-tekiela merged 2 commits into
php:masterfrom
kamil-tekiela:Mysqli-fetch-column
May 1, 2021
Merged

Implement mysqli_fetch_column#6798
kamil-tekiela merged 2 commits into
php:masterfrom
kamil-tekiela:Mysqli-fetch-column

Conversation

@kamil-tekiela

@kamil-tekielakamil-tekiela commented Mar 22, 2021

Copy link
Copy Markdown
Member

This is WIP but I am looking for suggestions to improve.

  • Is mixed better than null|int|string|false?
  • How to avoid temporary zval?

This should work almost exactly the same as PDO fetchColumn with the only difference that MySQL doesn't have a boolean type so the function can never return true (it will return false if no more rows are available).

Comment threadext/mysqli/mysqli_nonapi.c Outdated
@kamil-tekiela
kamil-tekielaforce-pushed the Mysqli-fetch-column branch 4 times, most recently from d6e8caf to 243d14fCompareMarch 24, 2021 12:50
@cmb69

Copy link
Copy Markdown
Member

Accompanying RFC: https://wiki.php.net/rfc/mysqli_fetch_column

@cmb69cmb69 added the RFC label Mar 30, 2021
@kamil-tekiela
kamil-tekielaforce-pushed the Mysqli-fetch-column branch 2 times, most recently from 0eb8c61 to 757d1fdCompareApril 4, 2021 22:52
Comment threadext/mysqli/mysqli.stub.php Outdated

function mysqli_fetch_row(mysqli_result $result): array|null|false {}

function mysqli_fetch_column(mysqli_result $result, int $column = 0): null|int|string|false {}

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can't it also return float in INT_AND_FLOAT native mode?

@nikicnikic left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good (assuming RFC accepted)

@kamil-tekiela
kamil-tekiela merged commit 54222a6 into php:masterMay 1, 2021
jrfnl added a commit to PHPCompatibility/PHPCompatibility that referenced this pull request Mar 9, 2022
While only the method is mentioned in the RFC and the Migration guide, a procedural version of the same was also implemented.
Includes unit tests.
Refs:
* https://www.php.net/manual/en/migration81.new-features.php#migration81.new-features.mysqli.mysqli_fetch_column
* https://wiki.php.net/rfc/mysqli_fetch_column
* php/php-src#6798
* php/php-src@54222a6
jrfnl added a commit to jrfnl/doc-en that referenced this pull request Mar 11, 2022
(mentioned in new features, but not in the new functions list)
> `mysqli_result::fetch_column()` has been added to allow fetching a single scalar value from the result set.
While only the method is mentioned in the RFC and the Migration guide, a procedural version of the same was also implemented.
Refs:
* https://www.php.net/manual/en/migration81.new-features.php#migration81.new-features.mysqli.mysqli_fetch_column
* https://wiki.php.net/rfc/mysqli_fetch_column
* php/php-src#6798
* php/php-src@54222a6
cmb69 pushed a commit to php/doc-en that referenced this pull request Mar 11, 2022
* PHP 8.1 | MigrationGuide/New functions: add missing functions [1]
(mentioned in new features, but not in the new functions list)
> GD:
> * Avif support is now available through the `imagecreatefromavif()` and
> `imageavif()` functions, if libgd has been built with avif support.
Refs:
* https://github.com/php/php-src/blob/f67986a9218f4889d9352a87c29337a5b6eaa4bd/UPGRADING#L245-L247
* php/php-src#7026
* php/php-src@81f6d36
* PHP 8.1 | MigrationGuide/New functions: add missing functions [2]
(mentioned in new features, but not in the new functions list)
> `mysqli_result::fetch_column()` has been added to allow fetching a single scalar value from the result set.
While only the method is mentioned in the RFC and the Migration guide, a procedural version of the same was also implemented.
Refs:
* https://www.php.net/manual/en/migration81.new-features.php#migration81.new-features.mysqli.mysqli_fetch_column
* https://wiki.php.net/rfc/mysqli_fetch_column
* php/php-src#6798
* php/php-src@54222a6
Co-authored-by: jrfnl <jrfnl@users.noreply.github.com>
ClosesGH-1448.
tiffany-taylor pushed a commit to tiffany-taylor/doc-en that referenced this pull request Jan 16, 2023
* PHP 8.1 | MigrationGuide/New functions: add missing functions [1]
(mentioned in new features, but not in the new functions list)
> GD:
> * Avif support is now available through the `imagecreatefromavif()` and
> `imageavif()` functions, if libgd has been built with avif support.
Refs:
* https://github.com/php/php-src/blob/f67986a9218f4889d9352a87c29337a5b6eaa4bd/UPGRADING#L245-L247
* php/php-src#7026
* php/php-src@81f6d36
* PHP 8.1 | MigrationGuide/New functions: add missing functions [2]
(mentioned in new features, but not in the new functions list)
> `mysqli_result::fetch_column()` has been added to allow fetching a single scalar value from the result set.
While only the method is mentioned in the RFC and the Migration guide, a procedural version of the same was also implemented.
Refs:
* https://www.php.net/manual/en/migration81.new-features.php#migration81.new-features.mysqli.mysqli_fetch_column
* https://wiki.php.net/rfc/mysqli_fetch_column
* php/php-src#6798
* php/php-src@54222a6
Co-authored-by: jrfnl <jrfnl@users.noreply.github.com>
ClosesphpGH-1448.
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@kamil-tekiela@cmb69@nikic@kocsismate
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Implement mysqli_fetch_column - #6798

Merged
kamil-tekiela merged 2 commits into
php:masterfrom
kamil-tekiela:Mysqli-fetch-column
May 1, 2021
Merged

Implement mysqli_fetch_column#6798
kamil-tekiela merged 2 commits into
php:masterfrom
kamil-tekiela:Mysqli-fetch-column

Conversation

@kamil-tekiela

@kamil-tekielakamil-tekiela commented Mar 22, 2021

Copy link
Copy Markdown
Member

This is WIP but I am looking for suggestions to improve.

  • Is mixed better than null|int|string|false?
  • How to avoid temporary zval?

This should work almost exactly the same as PDO fetchColumn with the only difference that MySQL doesn't have a boolean type so the function can never return true (it will return false if no more rows are available).

Comment threadext/mysqli/mysqli_nonapi.c Outdated
@kamil-tekiela
kamil-tekielaforce-pushed the Mysqli-fetch-column branch 4 times, most recently from d6e8caf to 243d14fCompareMarch 24, 2021 12:50
@cmb69

Copy link
Copy Markdown
Member

Accompanying RFC: https://wiki.php.net/rfc/mysqli_fetch_column

@cmb69cmb69 added the RFC label Mar 30, 2021
@kamil-tekiela
kamil-tekielaforce-pushed the Mysqli-fetch-column branch 2 times, most recently from 0eb8c61 to 757d1fdCompareApril 4, 2021 22:52
Comment threadext/mysqli/mysqli.stub.php Outdated

function mysqli_fetch_row(mysqli_result $result): array|null|false {}

function mysqli_fetch_column(mysqli_result $result, int $column = 0): null|int|string|false {}

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can't it also return float in INT_AND_FLOAT native mode?

@nikicnikic left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good (assuming RFC accepted)

@kamil-tekiela
kamil-tekiela merged commit 54222a6 into php:masterMay 1, 2021
jrfnl added a commit to PHPCompatibility/PHPCompatibility that referenced this pull request Mar 9, 2022
While only the method is mentioned in the RFC and the Migration guide, a procedural version of the same was also implemented.
Includes unit tests.
Refs:
* https://www.php.net/manual/en/migration81.new-features.php#migration81.new-features.mysqli.mysqli_fetch_column
* https://wiki.php.net/rfc/mysqli_fetch_column
* php/php-src#6798
* php/php-src@54222a6
jrfnl added a commit to jrfnl/doc-en that referenced this pull request Mar 11, 2022
(mentioned in new features, but not in the new functions list)
> `mysqli_result::fetch_column()` has been added to allow fetching a single scalar value from the result set.
While only the method is mentioned in the RFC and the Migration guide, a procedural version of the same was also implemented.
Refs:
* https://www.php.net/manual/en/migration81.new-features.php#migration81.new-features.mysqli.mysqli_fetch_column
* https://wiki.php.net/rfc/mysqli_fetch_column
* php/php-src#6798
* php/php-src@54222a6
cmb69 pushed a commit to php/doc-en that referenced this pull request Mar 11, 2022
* PHP 8.1 | MigrationGuide/New functions: add missing functions [1]
(mentioned in new features, but not in the new functions list)
> GD:
> * Avif support is now available through the `imagecreatefromavif()` and
> `imageavif()` functions, if libgd has been built with avif support.
Refs:
* https://github.com/php/php-src/blob/f67986a9218f4889d9352a87c29337a5b6eaa4bd/UPGRADING#L245-L247
* php/php-src#7026
* php/php-src@81f6d36
* PHP 8.1 | MigrationGuide/New functions: add missing functions [2]
(mentioned in new features, but not in the new functions list)
> `mysqli_result::fetch_column()` has been added to allow fetching a single scalar value from the result set.
While only the method is mentioned in the RFC and the Migration guide, a procedural version of the same was also implemented.
Refs:
* https://www.php.net/manual/en/migration81.new-features.php#migration81.new-features.mysqli.mysqli_fetch_column
* https://wiki.php.net/rfc/mysqli_fetch_column
* php/php-src#6798
* php/php-src@54222a6
Co-authored-by: jrfnl <jrfnl@users.noreply.github.com>
ClosesGH-1448.
tiffany-taylor pushed a commit to tiffany-taylor/doc-en that referenced this pull request Jan 16, 2023
* PHP 8.1 | MigrationGuide/New functions: add missing functions [1]
(mentioned in new features, but not in the new functions list)
> GD:
> * Avif support is now available through the `imagecreatefromavif()` and
> `imageavif()` functions, if libgd has been built with avif support.
Refs:
* https://github.com/php/php-src/blob/f67986a9218f4889d9352a87c29337a5b6eaa4bd/UPGRADING#L245-L247
* php/php-src#7026
* php/php-src@81f6d36
* PHP 8.1 | MigrationGuide/New functions: add missing functions [2]
(mentioned in new features, but not in the new functions list)
> `mysqli_result::fetch_column()` has been added to allow fetching a single scalar value from the result set.
While only the method is mentioned in the RFC and the Migration guide, a procedural version of the same was also implemented.
Refs:
* https://www.php.net/manual/en/migration81.new-features.php#migration81.new-features.mysqli.mysqli_fetch_column
* https://wiki.php.net/rfc/mysqli_fetch_column
* php/php-src#6798
* php/php-src@54222a6
Co-authored-by: jrfnl <jrfnl@users.noreply.github.com>
ClosesphpGH-1448.
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@kamil-tekiela@cmb69@nikic@kocsismate
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Implement mysqli_fetch_column - #6798

Merged
kamil-tekiela merged 2 commits into
php:masterfrom
kamil-tekiela:Mysqli-fetch-column
May 1, 2021
Merged

Implement mysqli_fetch_column#6798
kamil-tekiela merged 2 commits into
php:masterfrom
kamil-tekiela:Mysqli-fetch-column

Conversation

@kamil-tekiela

@kamil-tekielakamil-tekiela commented Mar 22, 2021

Copy link
Copy Markdown
Member

This is WIP but I am looking for suggestions to improve.

  • Is mixed better than null|int|string|false?
  • How to avoid temporary zval?

This should work almost exactly the same as PDO fetchColumn with the only difference that MySQL doesn't have a boolean type so the function can never return true (it will return false if no more rows are available).

Comment threadext/mysqli/mysqli_nonapi.c Outdated
@kamil-tekiela
kamil-tekielaforce-pushed the Mysqli-fetch-column branch 4 times, most recently from d6e8caf to 243d14fCompareMarch 24, 2021 12:50
@cmb69

Copy link
Copy Markdown
Member

Accompanying RFC: https://wiki.php.net/rfc/mysqli_fetch_column

@cmb69cmb69 added the RFC label Mar 30, 2021
@kamil-tekiela
kamil-tekielaforce-pushed the Mysqli-fetch-column branch 2 times, most recently from 0eb8c61 to 757d1fdCompareApril 4, 2021 22:52
Comment threadext/mysqli/mysqli.stub.php Outdated

function mysqli_fetch_row(mysqli_result $result): array|null|false {}

function mysqli_fetch_column(mysqli_result $result, int $column = 0): null|int|string|false {}

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can't it also return float in INT_AND_FLOAT native mode?

@nikicnikic left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good (assuming RFC accepted)

@kamil-tekiela
kamil-tekiela merged commit 54222a6 into php:masterMay 1, 2021
jrfnl added a commit to PHPCompatibility/PHPCompatibility that referenced this pull request Mar 9, 2022
While only the method is mentioned in the RFC and the Migration guide, a procedural version of the same was also implemented.
Includes unit tests.
Refs:
* https://www.php.net/manual/en/migration81.new-features.php#migration81.new-features.mysqli.mysqli_fetch_column
* https://wiki.php.net/rfc/mysqli_fetch_column
* php/php-src#6798
* php/php-src@54222a6
jrfnl added a commit to jrfnl/doc-en that referenced this pull request Mar 11, 2022
(mentioned in new features, but not in the new functions list)
> `mysqli_result::fetch_column()` has been added to allow fetching a single scalar value from the result set.
While only the method is mentioned in the RFC and the Migration guide, a procedural version of the same was also implemented.
Refs:
* https://www.php.net/manual/en/migration81.new-features.php#migration81.new-features.mysqli.mysqli_fetch_column
* https://wiki.php.net/rfc/mysqli_fetch_column
* php/php-src#6798
* php/php-src@54222a6
cmb69 pushed a commit to php/doc-en that referenced this pull request Mar 11, 2022
* PHP 8.1 | MigrationGuide/New functions: add missing functions [1]
(mentioned in new features, but not in the new functions list)
> GD:
> * Avif support is now available through the `imagecreatefromavif()` and
> `imageavif()` functions, if libgd has been built with avif support.
Refs:
* https://github.com/php/php-src/blob/f67986a9218f4889d9352a87c29337a5b6eaa4bd/UPGRADING#L245-L247
* php/php-src#7026
* php/php-src@81f6d36
* PHP 8.1 | MigrationGuide/New functions: add missing functions [2]
(mentioned in new features, but not in the new functions list)
> `mysqli_result::fetch_column()` has been added to allow fetching a single scalar value from the result set.
While only the method is mentioned in the RFC and the Migration guide, a procedural version of the same was also implemented.
Refs:
* https://www.php.net/manual/en/migration81.new-features.php#migration81.new-features.mysqli.mysqli_fetch_column
* https://wiki.php.net/rfc/mysqli_fetch_column
* php/php-src#6798
* php/php-src@54222a6
Co-authored-by: jrfnl <jrfnl@users.noreply.github.com>
ClosesGH-1448.
tiffany-taylor pushed a commit to tiffany-taylor/doc-en that referenced this pull request Jan 16, 2023
* PHP 8.1 | MigrationGuide/New functions: add missing functions [1]
(mentioned in new features, but not in the new functions list)
> GD:
> * Avif support is now available through the `imagecreatefromavif()` and
> `imageavif()` functions, if libgd has been built with avif support.
Refs:
* https://github.com/php/php-src/blob/f67986a9218f4889d9352a87c29337a5b6eaa4bd/UPGRADING#L245-L247
* php/php-src#7026
* php/php-src@81f6d36
* PHP 8.1 | MigrationGuide/New functions: add missing functions [2]
(mentioned in new features, but not in the new functions list)
> `mysqli_result::fetch_column()` has been added to allow fetching a single scalar value from the result set.
While only the method is mentioned in the RFC and the Migration guide, a procedural version of the same was also implemented.
Refs:
* https://www.php.net/manual/en/migration81.new-features.php#migration81.new-features.mysqli.mysqli_fetch_column
* https://wiki.php.net/rfc/mysqli_fetch_column
* php/php-src#6798
* php/php-src@54222a6
Co-authored-by: jrfnl <jrfnl@users.noreply.github.com>
ClosesphpGH-1448.
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@kamil-tekiela@cmb69@nikic@kocsismate
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Implement mysqli_fetch_column - #6798

Merged
kamil-tekiela merged 2 commits into
php:masterfrom
kamil-tekiela:Mysqli-fetch-column
May 1, 2021
Merged

Implement mysqli_fetch_column#6798
kamil-tekiela merged 2 commits into
php:masterfrom
kamil-tekiela:Mysqli-fetch-column

Conversation

@kamil-tekiela

@kamil-tekielakamil-tekiela commented Mar 22, 2021

Copy link
Copy Markdown
Member

This is WIP but I am looking for suggestions to improve.

  • Is mixed better than null|int|string|false?
  • How to avoid temporary zval?

This should work almost exactly the same as PDO fetchColumn with the only difference that MySQL doesn't have a boolean type so the function can never return true (it will return false if no more rows are available).

Comment threadext/mysqli/mysqli_nonapi.c Outdated
@kamil-tekiela
kamil-tekielaforce-pushed the Mysqli-fetch-column branch 4 times, most recently from d6e8caf to 243d14fCompareMarch 24, 2021 12:50
@cmb69

Copy link
Copy Markdown
Member

Accompanying RFC: https://wiki.php.net/rfc/mysqli_fetch_column

@cmb69cmb69 added the RFC label Mar 30, 2021
@kamil-tekiela
kamil-tekielaforce-pushed the Mysqli-fetch-column branch 2 times, most recently from 0eb8c61 to 757d1fdCompareApril 4, 2021 22:52
Comment threadext/mysqli/mysqli.stub.php Outdated

function mysqli_fetch_row(mysqli_result $result): array|null|false {}

function mysqli_fetch_column(mysqli_result $result, int $column = 0): null|int|string|false {}

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can't it also return float in INT_AND_FLOAT native mode?

@nikicnikic left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good (assuming RFC accepted)

@kamil-tekiela
kamil-tekiela merged commit 54222a6 into php:masterMay 1, 2021
jrfnl added a commit to PHPCompatibility/PHPCompatibility that referenced this pull request Mar 9, 2022
While only the method is mentioned in the RFC and the Migration guide, a procedural version of the same was also implemented.
Includes unit tests.
Refs:
* https://www.php.net/manual/en/migration81.new-features.php#migration81.new-features.mysqli.mysqli_fetch_column
* https://wiki.php.net/rfc/mysqli_fetch_column
* php/php-src#6798
* php/php-src@54222a6
jrfnl added a commit to jrfnl/doc-en that referenced this pull request Mar 11, 2022
(mentioned in new features, but not in the new functions list)
> `mysqli_result::fetch_column()` has been added to allow fetching a single scalar value from the result set.
While only the method is mentioned in the RFC and the Migration guide, a procedural version of the same was also implemented.
Refs:
* https://www.php.net/manual/en/migration81.new-features.php#migration81.new-features.mysqli.mysqli_fetch_column
* https://wiki.php.net/rfc/mysqli_fetch_column
* php/php-src#6798
* php/php-src@54222a6
cmb69 pushed a commit to php/doc-en that referenced this pull request Mar 11, 2022
* PHP 8.1 | MigrationGuide/New functions: add missing functions [1]
(mentioned in new features, but not in the new functions list)
> GD:
> * Avif support is now available through the `imagecreatefromavif()` and
> `imageavif()` functions, if libgd has been built with avif support.
Refs:
* https://github.com/php/php-src/blob/f67986a9218f4889d9352a87c29337a5b6eaa4bd/UPGRADING#L245-L247
* php/php-src#7026
* php/php-src@81f6d36
* PHP 8.1 | MigrationGuide/New functions: add missing functions [2]
(mentioned in new features, but not in the new functions list)
> `mysqli_result::fetch_column()` has been added to allow fetching a single scalar value from the result set.
While only the method is mentioned in the RFC and the Migration guide, a procedural version of the same was also implemented.
Refs:
* https://www.php.net/manual/en/migration81.new-features.php#migration81.new-features.mysqli.mysqli_fetch_column
* https://wiki.php.net/rfc/mysqli_fetch_column
* php/php-src#6798
* php/php-src@54222a6
Co-authored-by: jrfnl <jrfnl@users.noreply.github.com>
ClosesGH-1448.
tiffany-taylor pushed a commit to tiffany-taylor/doc-en that referenced this pull request Jan 16, 2023
* PHP 8.1 | MigrationGuide/New functions: add missing functions [1]
(mentioned in new features, but not in the new functions list)
> GD:
> * Avif support is now available through the `imagecreatefromavif()` and
> `imageavif()` functions, if libgd has been built with avif support.
Refs:
* https://github.com/php/php-src/blob/f67986a9218f4889d9352a87c29337a5b6eaa4bd/UPGRADING#L245-L247
* php/php-src#7026
* php/php-src@81f6d36
* PHP 8.1 | MigrationGuide/New functions: add missing functions [2]
(mentioned in new features, but not in the new functions list)
> `mysqli_result::fetch_column()` has been added to allow fetching a single scalar value from the result set.
While only the method is mentioned in the RFC and the Migration guide, a procedural version of the same was also implemented.
Refs:
* https://www.php.net/manual/en/migration81.new-features.php#migration81.new-features.mysqli.mysqli_fetch_column
* https://wiki.php.net/rfc/mysqli_fetch_column
* php/php-src#6798
* php/php-src@54222a6
Co-authored-by: jrfnl <jrfnl@users.noreply.github.com>
ClosesphpGH-1448.
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@kamil-tekiela@cmb69@nikic@kocsismate
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Implement mysqli_fetch_column - #6798

Merged
kamil-tekiela merged 2 commits into
php:masterfrom
kamil-tekiela:Mysqli-fetch-column
May 1, 2021
Merged

Implement mysqli_fetch_column#6798
kamil-tekiela merged 2 commits into
php:masterfrom
kamil-tekiela:Mysqli-fetch-column

Conversation

@kamil-tekiela

@kamil-tekielakamil-tekiela commented Mar 22, 2021

Copy link
Copy Markdown
Member

This is WIP but I am looking for suggestions to improve.

  • Is mixed better than null|int|string|false?
  • How to avoid temporary zval?

This should work almost exactly the same as PDO fetchColumn with the only difference that MySQL doesn't have a boolean type so the function can never return true (it will return false if no more rows are available).

Comment threadext/mysqli/mysqli_nonapi.c Outdated
@kamil-tekiela
kamil-tekielaforce-pushed the Mysqli-fetch-column branch 4 times, most recently from d6e8caf to 243d14fCompareMarch 24, 2021 12:50
@cmb69

Copy link
Copy Markdown
Member

Accompanying RFC: https://wiki.php.net/rfc/mysqli_fetch_column

@cmb69cmb69 added the RFC label Mar 30, 2021
@kamil-tekiela
kamil-tekielaforce-pushed the Mysqli-fetch-column branch 2 times, most recently from 0eb8c61 to 757d1fdCompareApril 4, 2021 22:52
Comment threadext/mysqli/mysqli.stub.php Outdated

function mysqli_fetch_row(mysqli_result $result): array|null|false {}

function mysqli_fetch_column(mysqli_result $result, int $column = 0): null|int|string|false {}

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can't it also return float in INT_AND_FLOAT native mode?

@nikicnikic left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good (assuming RFC accepted)

@kamil-tekiela
kamil-tekiela merged commit 54222a6 into php:masterMay 1, 2021
jrfnl added a commit to PHPCompatibility/PHPCompatibility that referenced this pull request Mar 9, 2022
While only the method is mentioned in the RFC and the Migration guide, a procedural version of the same was also implemented.
Includes unit tests.
Refs:
* https://www.php.net/manual/en/migration81.new-features.php#migration81.new-features.mysqli.mysqli_fetch_column
* https://wiki.php.net/rfc/mysqli_fetch_column
* php/php-src#6798
* php/php-src@54222a6
jrfnl added a commit to jrfnl/doc-en that referenced this pull request Mar 11, 2022
(mentioned in new features, but not in the new functions list)
> `mysqli_result::fetch_column()` has been added to allow fetching a single scalar value from the result set.
While only the method is mentioned in the RFC and the Migration guide, a procedural version of the same was also implemented.
Refs:
* https://www.php.net/manual/en/migration81.new-features.php#migration81.new-features.mysqli.mysqli_fetch_column
* https://wiki.php.net/rfc/mysqli_fetch_column
* php/php-src#6798
* php/php-src@54222a6
cmb69 pushed a commit to php/doc-en that referenced this pull request Mar 11, 2022
* PHP 8.1 | MigrationGuide/New functions: add missing functions [1]
(mentioned in new features, but not in the new functions list)
> GD:
> * Avif support is now available through the `imagecreatefromavif()` and
> `imageavif()` functions, if libgd has been built with avif support.
Refs:
* https://github.com/php/php-src/blob/f67986a9218f4889d9352a87c29337a5b6eaa4bd/UPGRADING#L245-L247
* php/php-src#7026
* php/php-src@81f6d36
* PHP 8.1 | MigrationGuide/New functions: add missing functions [2]
(mentioned in new features, but not in the new functions list)
> `mysqli_result::fetch_column()` has been added to allow fetching a single scalar value from the result set.
While only the method is mentioned in the RFC and the Migration guide, a procedural version of the same was also implemented.
Refs:
* https://www.php.net/manual/en/migration81.new-features.php#migration81.new-features.mysqli.mysqli_fetch_column
* https://wiki.php.net/rfc/mysqli_fetch_column
* php/php-src#6798
* php/php-src@54222a6
Co-authored-by: jrfnl <jrfnl@users.noreply.github.com>
ClosesGH-1448.
tiffany-taylor pushed a commit to tiffany-taylor/doc-en that referenced this pull request Jan 16, 2023
* PHP 8.1 | MigrationGuide/New functions: add missing functions [1]
(mentioned in new features, but not in the new functions list)
> GD:
> * Avif support is now available through the `imagecreatefromavif()` and
> `imageavif()` functions, if libgd has been built with avif support.
Refs:
* https://github.com/php/php-src/blob/f67986a9218f4889d9352a87c29337a5b6eaa4bd/UPGRADING#L245-L247
* php/php-src#7026
* php/php-src@81f6d36
* PHP 8.1 | MigrationGuide/New functions: add missing functions [2]
(mentioned in new features, but not in the new functions list)
> `mysqli_result::fetch_column()` has been added to allow fetching a single scalar value from the result set.
While only the method is mentioned in the RFC and the Migration guide, a procedural version of the same was also implemented.
Refs:
* https://www.php.net/manual/en/migration81.new-features.php#migration81.new-features.mysqli.mysqli_fetch_column
* https://wiki.php.net/rfc/mysqli_fetch_column
* php/php-src#6798
* php/php-src@54222a6
Co-authored-by: jrfnl <jrfnl@users.noreply.github.com>
ClosesphpGH-1448.
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@kamil-tekiela@cmb69@nikic@kocsismate
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Implement mysqli_fetch_column - #6798

Merged
kamil-tekiela merged 2 commits into
php:masterfrom
kamil-tekiela:Mysqli-fetch-column
May 1, 2021
Merged

Implement mysqli_fetch_column#6798
kamil-tekiela merged 2 commits into
php:masterfrom
kamil-tekiela:Mysqli-fetch-column

Conversation

@kamil-tekiela

@kamil-tekielakamil-tekiela commented Mar 22, 2021

Copy link
Copy Markdown
Member

This is WIP but I am looking for suggestions to improve.

  • Is mixed better than null|int|string|false?
  • How to avoid temporary zval?

This should work almost exactly the same as PDO fetchColumn with the only difference that MySQL doesn't have a boolean type so the function can never return true (it will return false if no more rows are available).

Comment threadext/mysqli/mysqli_nonapi.c Outdated
@kamil-tekiela
kamil-tekielaforce-pushed the Mysqli-fetch-column branch 4 times, most recently from d6e8caf to 243d14fCompareMarch 24, 2021 12:50
@cmb69

Copy link
Copy Markdown
Member

Accompanying RFC: https://wiki.php.net/rfc/mysqli_fetch_column

@cmb69cmb69 added the RFC label Mar 30, 2021
@kamil-tekiela
kamil-tekielaforce-pushed the Mysqli-fetch-column branch 2 times, most recently from 0eb8c61 to 757d1fdCompareApril 4, 2021 22:52
Comment threadext/mysqli/mysqli.stub.php Outdated

function mysqli_fetch_row(mysqli_result $result): array|null|false {}

function mysqli_fetch_column(mysqli_result $result, int $column = 0): null|int|string|false {}

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can't it also return float in INT_AND_FLOAT native mode?

@nikicnikic left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good (assuming RFC accepted)

@kamil-tekiela
kamil-tekiela merged commit 54222a6 into php:masterMay 1, 2021
jrfnl added a commit to PHPCompatibility/PHPCompatibility that referenced this pull request Mar 9, 2022
While only the method is mentioned in the RFC and the Migration guide, a procedural version of the same was also implemented.
Includes unit tests.
Refs:
* https://www.php.net/manual/en/migration81.new-features.php#migration81.new-features.mysqli.mysqli_fetch_column
* https://wiki.php.net/rfc/mysqli_fetch_column
* php/php-src#6798
* php/php-src@54222a6
jrfnl added a commit to jrfnl/doc-en that referenced this pull request Mar 11, 2022
(mentioned in new features, but not in the new functions list)
> `mysqli_result::fetch_column()` has been added to allow fetching a single scalar value from the result set.
While only the method is mentioned in the RFC and the Migration guide, a procedural version of the same was also implemented.
Refs:
* https://www.php.net/manual/en/migration81.new-features.php#migration81.new-features.mysqli.mysqli_fetch_column
* https://wiki.php.net/rfc/mysqli_fetch_column
* php/php-src#6798
* php/php-src@54222a6
cmb69 pushed a commit to php/doc-en that referenced this pull request Mar 11, 2022
* PHP 8.1 | MigrationGuide/New functions: add missing functions [1]
(mentioned in new features, but not in the new functions list)
> GD:
> * Avif support is now available through the `imagecreatefromavif()` and
> `imageavif()` functions, if libgd has been built with avif support.
Refs:
* https://github.com/php/php-src/blob/f67986a9218f4889d9352a87c29337a5b6eaa4bd/UPGRADING#L245-L247
* php/php-src#7026
* php/php-src@81f6d36
* PHP 8.1 | MigrationGuide/New functions: add missing functions [2]
(mentioned in new features, but not in the new functions list)
> `mysqli_result::fetch_column()` has been added to allow fetching a single scalar value from the result set.
While only the method is mentioned in the RFC and the Migration guide, a procedural version of the same was also implemented.
Refs:
* https://www.php.net/manual/en/migration81.new-features.php#migration81.new-features.mysqli.mysqli_fetch_column
* https://wiki.php.net/rfc/mysqli_fetch_column
* php/php-src#6798
* php/php-src@54222a6
Co-authored-by: jrfnl <jrfnl@users.noreply.github.com>
ClosesGH-1448.
tiffany-taylor pushed a commit to tiffany-taylor/doc-en that referenced this pull request Jan 16, 2023
* PHP 8.1 | MigrationGuide/New functions: add missing functions [1]
(mentioned in new features, but not in the new functions list)
> GD:
> * Avif support is now available through the `imagecreatefromavif()` and
> `imageavif()` functions, if libgd has been built with avif support.
Refs:
* https://github.com/php/php-src/blob/f67986a9218f4889d9352a87c29337a5b6eaa4bd/UPGRADING#L245-L247
* php/php-src#7026
* php/php-src@81f6d36
* PHP 8.1 | MigrationGuide/New functions: add missing functions [2]
(mentioned in new features, but not in the new functions list)
> `mysqli_result::fetch_column()` has been added to allow fetching a single scalar value from the result set.
While only the method is mentioned in the RFC and the Migration guide, a procedural version of the same was also implemented.
Refs:
* https://www.php.net/manual/en/migration81.new-features.php#migration81.new-features.mysqli.mysqli_fetch_column
* https://wiki.php.net/rfc/mysqli_fetch_column
* php/php-src#6798
* php/php-src@54222a6
Co-authored-by: jrfnl <jrfnl@users.noreply.github.com>
ClosesphpGH-1448.
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@kamil-tekiela@cmb69@nikic@kocsismate
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Implement mysqli_fetch_column - #6798

Merged
kamil-tekiela merged 2 commits into
php:masterfrom
kamil-tekiela:Mysqli-fetch-column
May 1, 2021
Merged

Implement mysqli_fetch_column#6798
kamil-tekiela merged 2 commits into
php:masterfrom
kamil-tekiela:Mysqli-fetch-column

Conversation

@kamil-tekiela

@kamil-tekielakamil-tekiela commented Mar 22, 2021

Copy link
Copy Markdown
Member

This is WIP but I am looking for suggestions to improve.

  • Is mixed better than null|int|string|false?
  • How to avoid temporary zval?

This should work almost exactly the same as PDO fetchColumn with the only difference that MySQL doesn't have a boolean type so the function can never return true (it will return false if no more rows are available).

Comment threadext/mysqli/mysqli_nonapi.c Outdated
@kamil-tekiela
kamil-tekielaforce-pushed the Mysqli-fetch-column branch 4 times, most recently from d6e8caf to 243d14fCompareMarch 24, 2021 12:50
@cmb69

Copy link
Copy Markdown
Member

Accompanying RFC: https://wiki.php.net/rfc/mysqli_fetch_column

@cmb69cmb69 added the RFC label Mar 30, 2021
@kamil-tekiela
kamil-tekielaforce-pushed the Mysqli-fetch-column branch 2 times, most recently from 0eb8c61 to 757d1fdCompareApril 4, 2021 22:52
Comment threadext/mysqli/mysqli.stub.php Outdated

function mysqli_fetch_row(mysqli_result $result): array|null|false {}

function mysqli_fetch_column(mysqli_result $result, int $column = 0): null|int|string|false {}

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can't it also return float in INT_AND_FLOAT native mode?

@nikicnikic left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good (assuming RFC accepted)

@kamil-tekiela
kamil-tekiela merged commit 54222a6 into php:masterMay 1, 2021
jrfnl added a commit to PHPCompatibility/PHPCompatibility that referenced this pull request Mar 9, 2022
While only the method is mentioned in the RFC and the Migration guide, a procedural version of the same was also implemented.
Includes unit tests.
Refs:
* https://www.php.net/manual/en/migration81.new-features.php#migration81.new-features.mysqli.mysqli_fetch_column
* https://wiki.php.net/rfc/mysqli_fetch_column
* php/php-src#6798
* php/php-src@54222a6
jrfnl added a commit to jrfnl/doc-en that referenced this pull request Mar 11, 2022
(mentioned in new features, but not in the new functions list)
> `mysqli_result::fetch_column()` has been added to allow fetching a single scalar value from the result set.
While only the method is mentioned in the RFC and the Migration guide, a procedural version of the same was also implemented.
Refs:
* https://www.php.net/manual/en/migration81.new-features.php#migration81.new-features.mysqli.mysqli_fetch_column
* https://wiki.php.net/rfc/mysqli_fetch_column
* php/php-src#6798
* php/php-src@54222a6
cmb69 pushed a commit to php/doc-en that referenced this pull request Mar 11, 2022
* PHP 8.1 | MigrationGuide/New functions: add missing functions [1]
(mentioned in new features, but not in the new functions list)
> GD:
> * Avif support is now available through the `imagecreatefromavif()` and
> `imageavif()` functions, if libgd has been built with avif support.
Refs:
* https://github.com/php/php-src/blob/f67986a9218f4889d9352a87c29337a5b6eaa4bd/UPGRADING#L245-L247
* php/php-src#7026
* php/php-src@81f6d36
* PHP 8.1 | MigrationGuide/New functions: add missing functions [2]
(mentioned in new features, but not in the new functions list)
> `mysqli_result::fetch_column()` has been added to allow fetching a single scalar value from the result set.
While only the method is mentioned in the RFC and the Migration guide, a procedural version of the same was also implemented.
Refs:
* https://www.php.net/manual/en/migration81.new-features.php#migration81.new-features.mysqli.mysqli_fetch_column
* https://wiki.php.net/rfc/mysqli_fetch_column
* php/php-src#6798
* php/php-src@54222a6
Co-authored-by: jrfnl <jrfnl@users.noreply.github.com>
ClosesGH-1448.
tiffany-taylor pushed a commit to tiffany-taylor/doc-en that referenced this pull request Jan 16, 2023
* PHP 8.1 | MigrationGuide/New functions: add missing functions [1]
(mentioned in new features, but not in the new functions list)
> GD:
> * Avif support is now available through the `imagecreatefromavif()` and
> `imageavif()` functions, if libgd has been built with avif support.
Refs:
* https://github.com/php/php-src/blob/f67986a9218f4889d9352a87c29337a5b6eaa4bd/UPGRADING#L245-L247
* php/php-src#7026
* php/php-src@81f6d36
* PHP 8.1 | MigrationGuide/New functions: add missing functions [2]
(mentioned in new features, but not in the new functions list)
> `mysqli_result::fetch_column()` has been added to allow fetching a single scalar value from the result set.
While only the method is mentioned in the RFC and the Migration guide, a procedural version of the same was also implemented.
Refs:
* https://www.php.net/manual/en/migration81.new-features.php#migration81.new-features.mysqli.mysqli_fetch_column
* https://wiki.php.net/rfc/mysqli_fetch_column
* php/php-src#6798
* php/php-src@54222a6
Co-authored-by: jrfnl <jrfnl@users.noreply.github.com>
ClosesphpGH-1448.
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@kamil-tekiela@cmb69@nikic@kocsismate
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Implement mysqli_fetch_column - #6798

Merged
kamil-tekiela merged 2 commits into
php:masterfrom
kamil-tekiela:Mysqli-fetch-column
May 1, 2021
Merged

Implement mysqli_fetch_column#6798
kamil-tekiela merged 2 commits into
php:masterfrom
kamil-tekiela:Mysqli-fetch-column

Conversation

@kamil-tekiela

@kamil-tekielakamil-tekiela commented Mar 22, 2021

Copy link
Copy Markdown
Member

This is WIP but I am looking for suggestions to improve.

  • Is mixed better than null|int|string|false?
  • How to avoid temporary zval?

This should work almost exactly the same as PDO fetchColumn with the only difference that MySQL doesn't have a boolean type so the function can never return true (it will return false if no more rows are available).

Comment threadext/mysqli/mysqli_nonapi.c Outdated
@kamil-tekiela
kamil-tekielaforce-pushed the Mysqli-fetch-column branch 4 times, most recently from d6e8caf to 243d14fCompareMarch 24, 2021 12:50
@cmb69

Copy link
Copy Markdown
Member

Accompanying RFC: https://wiki.php.net/rfc/mysqli_fetch_column

@cmb69cmb69 added the RFC label Mar 30, 2021
@kamil-tekiela
kamil-tekielaforce-pushed the Mysqli-fetch-column branch 2 times, most recently from 0eb8c61 to 757d1fdCompareApril 4, 2021 22:52
Comment threadext/mysqli/mysqli.stub.php Outdated

function mysqli_fetch_row(mysqli_result $result): array|null|false {}

function mysqli_fetch_column(mysqli_result $result, int $column = 0): null|int|string|false {}

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can't it also return float in INT_AND_FLOAT native mode?

@nikicnikic left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good (assuming RFC accepted)

@kamil-tekiela
kamil-tekiela merged commit 54222a6 into php:masterMay 1, 2021
jrfnl added a commit to PHPCompatibility/PHPCompatibility that referenced this pull request Mar 9, 2022
While only the method is mentioned in the RFC and the Migration guide, a procedural version of the same was also implemented.
Includes unit tests.
Refs:
* https://www.php.net/manual/en/migration81.new-features.php#migration81.new-features.mysqli.mysqli_fetch_column
* https://wiki.php.net/rfc/mysqli_fetch_column
* php/php-src#6798
* php/php-src@54222a6
jrfnl added a commit to jrfnl/doc-en that referenced this pull request Mar 11, 2022
(mentioned in new features, but not in the new functions list)
> `mysqli_result::fetch_column()` has been added to allow fetching a single scalar value from the result set.
While only the method is mentioned in the RFC and the Migration guide, a procedural version of the same was also implemented.
Refs:
* https://www.php.net/manual/en/migration81.new-features.php#migration81.new-features.mysqli.mysqli_fetch_column
* https://wiki.php.net/rfc/mysqli_fetch_column
* php/php-src#6798
* php/php-src@54222a6
cmb69 pushed a commit to php/doc-en that referenced this pull request Mar 11, 2022
* PHP 8.1 | MigrationGuide/New functions: add missing functions [1]
(mentioned in new features, but not in the new functions list)
> GD:
> * Avif support is now available through the `imagecreatefromavif()` and
> `imageavif()` functions, if libgd has been built with avif support.
Refs:
* https://github.com/php/php-src/blob/f67986a9218f4889d9352a87c29337a5b6eaa4bd/UPGRADING#L245-L247
* php/php-src#7026
* php/php-src@81f6d36
* PHP 8.1 | MigrationGuide/New functions: add missing functions [2]
(mentioned in new features, but not in the new functions list)
> `mysqli_result::fetch_column()` has been added to allow fetching a single scalar value from the result set.
While only the method is mentioned in the RFC and the Migration guide, a procedural version of the same was also implemented.
Refs:
* https://www.php.net/manual/en/migration81.new-features.php#migration81.new-features.mysqli.mysqli_fetch_column
* https://wiki.php.net/rfc/mysqli_fetch_column
* php/php-src#6798
* php/php-src@54222a6
Co-authored-by: jrfnl <jrfnl@users.noreply.github.com>
ClosesGH-1448.
tiffany-taylor pushed a commit to tiffany-taylor/doc-en that referenced this pull request Jan 16, 2023
* PHP 8.1 | MigrationGuide/New functions: add missing functions [1]
(mentioned in new features, but not in the new functions list)
> GD:
> * Avif support is now available through the `imagecreatefromavif()` and
> `imageavif()` functions, if libgd has been built with avif support.
Refs:
* https://github.com/php/php-src/blob/f67986a9218f4889d9352a87c29337a5b6eaa4bd/UPGRADING#L245-L247
* php/php-src#7026
* php/php-src@81f6d36
* PHP 8.1 | MigrationGuide/New functions: add missing functions [2]
(mentioned in new features, but not in the new functions list)
> `mysqli_result::fetch_column()` has been added to allow fetching a single scalar value from the result set.
While only the method is mentioned in the RFC and the Migration guide, a procedural version of the same was also implemented.
Refs:
* https://www.php.net/manual/en/migration81.new-features.php#migration81.new-features.mysqli.mysqli_fetch_column
* https://wiki.php.net/rfc/mysqli_fetch_column
* php/php-src#6798
* php/php-src@54222a6
Co-authored-by: jrfnl <jrfnl@users.noreply.github.com>
ClosesphpGH-1448.
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@kamil-tekiela@cmb69@nikic@kocsismate