💻 آخرین فرصت یادگیری برنامه‌نویسی با آفر ویژه قبل از افزایش قیمت در ۵ آذر ماه (🎁 به همراه یک هدیه ارزشمند )
۰ ثانیه
۰ دقیقه
۰ ساعت
۱ علی حبیبی
مشکل کوئری sql با حروف فارسی
جامعه پی اچ پی ایجاد شده در ۲۵ فروردین ۱۳۹۹
$sql = "SELECT DISTINCT  name_{$language} FROM cities WHERE name_{$language} LIKE "{$search_param}%"";

سلام استاد کوئری بالا زمانی که دیتای بازگشتی انگلیسی هست درست کار میکنه اما وقتی فارسی میشه نتیجه درست رو بر نمیگردونه یعنی مثلا %ت LIKE ، تهران رو برنمیگردونه اما  t% LIKE  ، tehran رو برمیگردونه میخواستم ببینم برای کار با دیتای فارسی نکته خاصی هست؟؟

سلام 

این ایراد در % که داخل کوئری گذاشتید پیش میاد، برای جلوگیری از اون می‌تونید از bindValue استفاده کنید که تو مثال زیر آوردم.

 

$sql = "SELECT name FROM city WHERE name LIKE :keywords";
$stmt = $db->prepare($sql);
$stmt->bindValue(':keywords', $city . '%');
$stmt->execute();
$result = $stmt->fetchAll(PDO::FETCH_OBJ);

 

امیر صالحی ۲۶ فروردین ۱۳۹۹، ۰۷:۰۵