original) (raw)
array_map_op causes "Internal Server Error" · Issue #1 · openresty/array-var-nginx-module (The below config will cause "Internal Server Error" from Nginx 0.8.41:
location ~ ^/(?P<table>\w+)/(?P<id>\d+)/?$ {
set_form_input $columns;
set_form_input $values;
array_split ',' <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>v</mi><mi>a</mi><mi>l</mi><mi>u</mi><mi>e</mi><mi>s</mi><mi>t</mi><mi>o</mi><mo>=</mo></mrow><annotation encoding="application/x-tex">values to=</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.6944em;"></span><span class="mord mathnormal" style="margin-right:0.03588em;">v</span><span class="mord mathnormal">a</span><span class="mord mathnormal" style="margin-right:0.01968em;">l</span><span class="mord mathnormal">u</span><span class="mord mathnormal">es</span><span class="mord mathnormal">t</span><span class="mord mathnormal">o</span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">=</span></span></span></span>array;
array_map_op set_quote_sql_str $array;
array_join ',' <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>a</mi><mi>r</mi><mi>r</mi><mi>a</mi><mi>y</mi><mi>t</mi><mi>o</mi><mo>=</mo></mrow><annotation encoding="application/x-tex">array to=</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.8095em;vertical-align:-0.1944em;"></span><span class="mord mathnormal">a</span><span class="mord mathnormal" style="margin-right:0.02778em;">rr</span><span class="mord mathnormal">a</span><span class="mord mathnormal" style="margin-right:0.03588em;">y</span><span class="mord mathnormal">t</span><span class="mord mathnormal">o</span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">=</span></span></span></span>sql_args;
echo $sql_args;
}
Removing the array_map_op line allows it to complete successfully.
Test with:
curl -d "columns=username,password&values=joe,secret" http://localhost/users/1