<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/class.mysqli.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'ja',
  ),
  'this' => 
  array (
    0 => 'mysqli.quote-string.php',
    1 => 'mysqli::quote_string',
    2 => 'Quotes and escapes a string for use in an SQL statement',
  ),
  'up' => 
  array (
    0 => 'class.mysqli.php',
    1 => 'mysqli',
  ),
  'prev' => 
  array (
    0 => 'mysqli.query.php',
    1 => 'mysqli::query',
  ),
  'next' => 
  array (
    0 => 'mysqli.real-connect.php',
    1 => 'mysqli::real_connect',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'en',
    'path' => 'reference/mysqli/mysqli/quote-string.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="mysqli.quote-string" class="refentry">
 <div class="refnamediv">
  <h1 class="refname">mysqli::quote_string</h1>
  <h1 class="refname">mysqli_quote_string</h1>
  <p class="verinfo">(PHP 8 &gt;= 8.6.0)</p><p class="refpurpose"><span class="refname">mysqli::quote_string</span> -- <span class="refname">mysqli_quote_string</span> &mdash; <span class="dc-title">Quotes and escapes a string for use in an SQL statement</span></p>

 </div>

 <div class="refsect1 description" id="refsect1-mysqli.quote-string-description">
  <h3 class="title">説明</h3>
  <p class="simpara">オブジェクト指向型</p>
  <div class="methodsynopsis dc-description">
   <span class="modifier">public</span> <span class="modifier">function</span> <span class="methodname"><strong>mysqli::quote_string</strong></span>(<span class="methodparam"><span class="type"><a href="language.types.string.php" class="type string">string</a></span> <code class="parameter">$string</code></span>): <span class="type"><a href="language.types.string.php" class="type string">string</a></span></div>

  <p class="simpara">手続き型</p>
  <div class="methodsynopsis dc-description"><span class="modifier">function</span> <span class="methodname"><strong>mysqli_quote_string</strong></span>(<span class="methodparam"><span class="type"><a href="class.mysqli.php" class="type mysqli">mysqli</a></span> <code class="parameter">$mysql</code></span>, <span class="methodparam"><span class="type"><a href="language.types.string.php" class="type string">string</a></span> <code class="parameter">$string</code></span>): <span class="type"><a href="language.types.string.php" class="type string">string</a></span></div>

  <p class="simpara">
   Creates a legal SQL string literal that can be used in an SQL statement.
   The given string is escaped in the same way as
   <span class="methodname"><a href="mysqli.real-escape-string.php" class="methodname">mysqli::real_escape_string()</a></span>, taking into account
   the current character set of the connection, and the result is wrapped in
   single quotes. The returned value must therefore be inserted into the
   query without adding any further quotes around it.
  </p>
  <p class="simpara">
   Unlike <span class="methodname"><a href="mysqli.real-escape-string.php" class="methodname">mysqli::real_escape_string()</a></span>, the result is
   also safe when the <code class="literal">NO_BACKSLASH_ESCAPES</code> SQL mode is
   enabled on the connection.
  </p>
  <div class="caution"><strong class="caution">警告</strong>
   <h1 class="title">Security: the default character set</h1>
   <p class="simpara">
    The character set must be set either at the server level, or with
    the API function <span class="function"><a href="mysqli.set-charset.php" class="function">mysqli_set_charset()</a></span> for it to affect
    <span class="function"><strong>mysqli_quote_string()</strong></span>. See the concepts section
    on <a href="mysqlinfo.concepts.charset.php" class="link">character sets</a> for
    more information.
   </p>
  </div>
  <blockquote class="note"><p><strong class="note">注意</strong>: 
   <p class="simpara">
    Quoting is only suitable for string literals. It does not make
    identifiers, such as table or column names, safe. Whenever possible, use
    <a href="mysqli.quickstart.prepared-statements.php" class="link">prepared
    statements</a> instead of building queries manually.
   </p>
  </p></blockquote>
 </div>


 <div class="refsect1 parameters" id="refsect1-mysqli.quote-string-parameters">
  <h3 class="title">パラメータ</h3>
  <p class="para">
   <dl>
    <dt><code class="parameter">link</code></dt><dd><p class="simpara">手続き型のみ:
<span class="function"><a href="mysqli.construct.php" class="function">mysqli_connect()</a></span> あるいは <span class="function"><a href="mysqli.init.php" class="function">mysqli_init()</a></span> が返す <span class="classname"><a href="class.mysqli.php" class="classname">mysqli</a></span>オブジェクト。
</p></dd>
    
     <dt><code class="parameter">string</code></dt>
     <dd>
      <p class="simpara">
       The string to be quoted and escaped.
      </p>
      <p class="simpara">
       Characters encoded are <code class="literal">NUL (ASCII 0)</code>,
       <code class="literal">\n</code>, <code class="literal">\r</code>, <code class="literal">\</code>,
       <code class="literal">&#039;</code>, <code class="literal">&quot;</code>, and
       <kbd class="keycombo"><kbd class="keycap">CTRL</kbd>+<kbd class="keycap">Z</kbd></kbd>.
       If the <code class="literal">NO_BACKSLASH_ESCAPES</code> SQL mode is enabled on
       the connection, only <code class="literal">&#039;</code> is encoded, by doubling it.
      </p>
     </dd>
    
   </dl>
  </p>
 </div>


 <div class="refsect1 returnvalues" id="refsect1-mysqli.quote-string-returnvalues">
  <h3 class="title">戻り値</h3>
  <p class="simpara">
   Returns the escaped string enclosed in single quotes.
  </p>
 </div>


 <div class="refsect1 examples" id="refsect1-mysqli.quote-string-examples">
  <h3 class="title">例</h3>
  <div class="example" id="example-1">
   <p><strong>例1 <span class="methodname"><strong>mysqli::quote_string()</strong></span> example</strong></p>
   <div class="example-contents"><p>オブジェクト指向型</p></div>
   <div class="example-contents">
<div class="phpcode"><pre><code style="color: #000000"><span style="color: #0000BB">&lt;?php

mysqli_report</span><span style="color: #007700">(</span><span style="color: #0000BB">MYSQLI_REPORT_ERROR </span><span style="color: #007700">| </span><span style="color: #0000BB">MYSQLI_REPORT_STRICT</span><span style="color: #007700">);
</span><span style="color: #0000BB">$mysqli </span><span style="color: #007700">= new </span><span style="color: #0000BB">mysqli</span><span style="color: #007700">(</span><span style="color: #DD0000">"localhost"</span><span style="color: #007700">, </span><span style="color: #DD0000">"my_user"</span><span style="color: #007700">, </span><span style="color: #DD0000">"my_password"</span><span style="color: #007700">, </span><span style="color: #DD0000">"world"</span><span style="color: #007700">);

</span><span style="color: #0000BB">$city </span><span style="color: #007700">= </span><span style="color: #DD0000">"'s-Hertogenbosch"</span><span style="color: #007700">;

</span><span style="color: #FF8000">/* this query with quoted $city will work */
</span><span style="color: #0000BB">$query </span><span style="color: #007700">= </span><span style="color: #0000BB">sprintf</span><span style="color: #007700">(</span><span style="color: #DD0000">"SELECT CountryCode FROM City WHERE name=%s"</span><span style="color: #007700">, </span><span style="color: #0000BB">$mysqli</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">quote_string</span><span style="color: #007700">(</span><span style="color: #0000BB">$city</span><span style="color: #007700">));
</span><span style="color: #0000BB">$result </span><span style="color: #007700">= </span><span style="color: #0000BB">$mysqli</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">query</span><span style="color: #007700">(</span><span style="color: #0000BB">$query</span><span style="color: #007700">);
</span><span style="color: #0000BB">printf</span><span style="color: #007700">(</span><span style="color: #DD0000">"Select returned %d rows.\n"</span><span style="color: #007700">, </span><span style="color: #0000BB">$result</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">num_rows</span><span style="color: #007700">);

</span><span style="color: #FF8000">/* this query will fail, because we didn't quote and escape $city */
</span><span style="color: #0000BB">$query </span><span style="color: #007700">= </span><span style="color: #0000BB">sprintf</span><span style="color: #007700">(</span><span style="color: #DD0000">"SELECT CountryCode FROM City WHERE name='%s'"</span><span style="color: #007700">, </span><span style="color: #0000BB">$city</span><span style="color: #007700">);
</span><span style="color: #0000BB">$result </span><span style="color: #007700">= </span><span style="color: #0000BB">$mysqli</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">query</span><span style="color: #007700">(</span><span style="color: #0000BB">$query</span><span style="color: #007700">);</span></code></pre></div>
   </div>

   <div class="example-contents"><p>手続き型</p></div>
   <div class="example-contents">
<div class="phpcode"><pre><code style="color: #000000"><span style="color: #0000BB">&lt;?php

mysqli_report</span><span style="color: #007700">(</span><span style="color: #0000BB">MYSQLI_REPORT_ERROR </span><span style="color: #007700">| </span><span style="color: #0000BB">MYSQLI_REPORT_STRICT</span><span style="color: #007700">);
</span><span style="color: #0000BB">$mysqli </span><span style="color: #007700">= </span><span style="color: #0000BB">mysqli_connect</span><span style="color: #007700">(</span><span style="color: #DD0000">"localhost"</span><span style="color: #007700">, </span><span style="color: #DD0000">"my_user"</span><span style="color: #007700">, </span><span style="color: #DD0000">"my_password"</span><span style="color: #007700">, </span><span style="color: #DD0000">"world"</span><span style="color: #007700">);

</span><span style="color: #0000BB">$city </span><span style="color: #007700">= </span><span style="color: #DD0000">"'s-Hertogenbosch"</span><span style="color: #007700">;

</span><span style="color: #FF8000">/* this query with quoted $city will work */
</span><span style="color: #0000BB">$query </span><span style="color: #007700">= </span><span style="color: #0000BB">sprintf</span><span style="color: #007700">(</span><span style="color: #DD0000">"SELECT CountryCode FROM City WHERE name=%s"</span><span style="color: #007700">, </span><span style="color: #0000BB">mysqli_quote_string</span><span style="color: #007700">(</span><span style="color: #0000BB">$mysqli</span><span style="color: #007700">, </span><span style="color: #0000BB">$city</span><span style="color: #007700">));
</span><span style="color: #0000BB">$result </span><span style="color: #007700">= </span><span style="color: #0000BB">mysqli_query</span><span style="color: #007700">(</span><span style="color: #0000BB">$mysqli</span><span style="color: #007700">, </span><span style="color: #0000BB">$query</span><span style="color: #007700">);
</span><span style="color: #0000BB">printf</span><span style="color: #007700">(</span><span style="color: #DD0000">"Select returned %d rows.\n"</span><span style="color: #007700">, </span><span style="color: #0000BB">mysqli_num_rows</span><span style="color: #007700">(</span><span style="color: #0000BB">$result</span><span style="color: #007700">));

</span><span style="color: #FF8000">/* this query will fail, because we didn't quote and escape $city */
</span><span style="color: #0000BB">$query </span><span style="color: #007700">= </span><span style="color: #0000BB">sprintf</span><span style="color: #007700">(</span><span style="color: #DD0000">"SELECT CountryCode FROM City WHERE name='%s'"</span><span style="color: #007700">, </span><span style="color: #0000BB">$city</span><span style="color: #007700">);
</span><span style="color: #0000BB">$result </span><span style="color: #007700">= </span><span style="color: #0000BB">mysqli_query</span><span style="color: #007700">(</span><span style="color: #0000BB">$mysqli</span><span style="color: #007700">, </span><span style="color: #0000BB">$query</span><span style="color: #007700">);</span></code></pre></div>
   </div>

   <div class="example-contents"><p>上の例の出力は、
たとえば以下のようになります。</p></div>
   <div class="example-contents screen">
<div class="examplescode"><pre class="examplescode">Select returned 1 rows.

Fatal error: Uncaught mysqli_sql_exception: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near &#039;s-Hertogenbosch&#039;&#039; at line 1 in...</pre>
</div>
   </div>
  </div>
 </div>


 <div class="refsect1 seealso" id="refsect1-mysqli.quote-string-seealso">
  <h3 class="title">参考</h3>
  <ul class="simplelist">
   <li><span class="methodname"><a href="mysqli.real-escape-string.php" class="methodname" rel="rdfs-seeAlso">mysqli::real_escape_string()</a> - 接続の現在の文字セットを考慮して、SQL 文で使用する文字列の特殊文字をエスケープする</span></li>
   <li><span class="methodname"><a href="mysqli.set-charset.php" class="methodname" rel="rdfs-seeAlso">mysqli::set_charset()</a> - クライアントの文字セットを設定する</span></li>
  </ul>
 </div>


</div><?php manual_footer($setup); ?>