[英]MySql query syntax issue within prepared statement with regexp + concat
我正在重新查看與mysql相關的舊代碼,並將其轉換為准備好的語句形式。
下面的查詢工作正常。
$sorgu = "SELECT * FROM tb_yazilar WHERE kolon_etiketler REGEXP '[[:<:]]".$adres_get_elemanlari[2]."[[:>:]]' ORDER BY kolon_sno DESC";
$sorgum = "SELECT kolon_yazar, kolon_baslik, kolon_ytarihi FROM tb_yazilar WHERE kolon_etiketler REGEXP CONCAT('[[:<:]]"', ?, '"[[:>:]]') AND kolon_statu = ? ORDER by kolon_onaytarihi DESC";
if ($beyan = $db_baglanti->prepare($sorgum))
{
/* bind parameters */
$beyan -> bind_param("ss", $bindparametre1, $bindparametre2);
/* assign values to bind parameters */
$bindparametre1 = tire_bosluk_olsun($_GET['rd_ozne']);
$bindparametre2 = 'onay';
/* execute statement */
$beyan->execute();
/* bind result variables */
$beyan->bind_result($yazar, $baslik, $ytarihi);
echo "\t".'<div class="sol-icerik-kapsar">'."\r\n";
echo "\t\t".'<h1>'.$_GET['rd_ozne'].'İLE ETİKETLENDİRİLMİŞ YAZI(LAR)</h1>'."\r\n";
echo "\t\t".'<ul>'."\r\n";
/* fetch values */
while ($beyan->fetch())
{
echo "\t\t\t".'<li>'.'<a href="'.sitenin_koku.'yazılar/'.bosluklar_tire_olsun($yazar).'/'.bosluklar_tire_olsun(noktalamasiz($baslik)).'">'.$baslik.'</a>'.' - '.turkcetarih('j F Y',$ytarihi).'</li>'."\r\n";
}
echo "\t\t".'</ul>'."\r\n";
echo "\t".'</div>'."\r\n";
/* close statement */
$beyan->close();
}
else {echo "Hazırlama hatası: (" . $db_baglanti->errno . ") " . $db_baglanti->error;}
解析錯誤:語法錯誤,在第2行的...中出現意外的'',?,''(T_CONSTANT_ENCAPSED_STRING)
我需要您的幫助,因為即使堆棧溢出或谷歌也無法解決我的問題。
謝謝
BR
語法高亮的文本編輯器將在這里為您提供幫助。
您已經"
嵌套在里面"
。 他們需要像\\"
一樣逃脫。
$sorgum = "SELECT kolon_yazar, kolon_baslik, kolon_ytarihi FROM tb_yazilar WHERE kolon_etiketler REGEXP CONCAT('[[:<:]]\"', ?, '\"[[:>:]]') AND kolon_statu = ? ORDER by kolon_onaytarihi DESC";
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.