Error : ตอนใส่เครื่องหมาย \ แล้วกดค้นหา ! จะแก้ไขได้ยังไงคะ เป็นเพราะอะไรคะ?

สำหรับผู้ที่ เริ่มต้น Programming - PHP มีอะไร แนะนำ หรือข้อสงสัยต้องบอร์ด นี้ คนที่มีความรู้ แบ่งปันคนอื่นบ้างนะ ปัญหาการเขียนโปรแกรม แบบ OOP Session Cookies php network

Moderators: mindphp, ผู้ดูแลกระดาน

thatsawan
PHP VIP Members
PHP VIP Members
Posts: 19892
Joined: 31/03/2014 10:02 am
Contact:

Error : ตอนใส่เครื่องหมาย \ แล้วกดค้นหา ! จะแก้ไขได้ยังไงคะ เป็นเพราะอะไรคะ?

Post by thatsawan » 15/11/2014 11:48 am

ใส่คำค้นหา ปกติ
15-11-2557 11-48-07.jpg
15-11-2557 11-48-07.jpg (14.35 KiB) Viewed 1722 times
แต่พอใส่ \ error เบย
15-11-2557 11-48-59.jpg
15-11-2557 11-48-59.jpg (8.5 KiB) Viewed 1722 times
15-11-2557 11-49-55.jpg
15-11-2557 11-49-55.jpg (43.66 KiB) Viewed 1722 times

User avatar
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
Posts: 22577
Joined: 22/09/2008 6:18 pm
Contact:

Re: Error : ตอนใส่เครื่องหมาย \ แล้วกดค้นหา ! จะแก้ไขได้ยังไงคะ เป็นเพราะอะไรคะ?

Post by mindphp » 15/11/2014 11:55 am

ตอนเขียน query ควรใช้

$db->sql_like_expression
$db->sql_escape
ครอบข้อความก่อน
หรือเพิ่ม utf8_clean_string() เข้าไปอีกตัวเพื่อ เครียร์ค่าแปลกๆ
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042

thatsawan
PHP VIP Members
PHP VIP Members
Posts: 19892
Joined: 31/03/2014 10:02 am
Contact:

Re: Error : ตอนใส่เครื่องหมาย \ แล้วกดค้นหา ! จะแก้ไขได้ยังไงคะ เป็นเพราะอะไรคะ?

Post by thatsawan » 15/11/2014 12:06 pm

ใช้ยังไงค่ะ

Code: Select all

 $sql_ary = array(
                        'SELECT'    => '*',
                        'FROM'      => array(
                                FORUMS_TABLE         => 'f',
                                ),
                        'WHERE' => " forum_id LIKE '" . $search. "' OR forum_name LIKE '%" .$search."%'OR forum_short_name LIKE '%" .$search."%'",
                        );
                         $sql = $db->sql_build_query('SELECT', $sql_ary);
                         $result = $db->sql_query_limit($sql, $per_page, $start);
                         while($row = $db->sql_fetchrow($result)){
                                $forum_id =  $row['forum_id'];
                                $template->assign_block_vars('row', array(
                                        'FORUM_ID'                      => $forum_id,
                                        'FORUM_NAME'                    => $row['forum_name'],
                                        'FORUM_SHORT_NAME'              => $row['forum_short_name'],
                                ));}    

thatsawan
PHP VIP Members
PHP VIP Members
Posts: 19892
Joined: 31/03/2014 10:02 am
Contact:

Re: Error : ตอนใส่เครื่องหมาย \ แล้วกดค้นหา ! จะแก้ไขได้ยังไงคะ เป็นเพราะอะไรคะ?

Post by thatsawan » 15/11/2014 12:08 pm

Code: Select all

$db->sql_like_expression(utf8_clean_string($username_chars)
ถ้าใช้เเบบนี้

ต้อง SQL ธรรมดาใช้ม้า

Code: Select all

    $sql = 'SELECT username, user_id, user_colour
            FROM ' . USERS_TABLE . '
            WHERE ' . $db->sql_in_set('user_type', array(USER_NORMAL, USER_FOUNDER)) . '
                AND username_clean ' . $db->sql_like_expression(utf8_clean_string($username_chars) . $db->get_any_char());
        $result = $db->sql_query_limit($sql, 10); 


User avatar
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
Posts: 22577
Joined: 22/09/2008 6:18 pm
Contact:

Re: Error : ตอนใส่เครื่องหมาย \ แล้วกดค้นหา ! จะแก้ไขได้ยังไงคะ เป็นเพราะอะไรคะ?

Post by mindphp » 15/11/2014 12:14 pm

ตัวอย่าง

Code: Select all

$sql_where = (strpos($author, '*') !== false) ? ' post_username ' . $db->sql_like_expression(str_replace('*', $db->any_char, utf8_clean_string($author))) : " post_username = '" . $db->sql_escape(utf8_clean_string($author)) . "'"; 
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042

thatsawan
PHP VIP Members
PHP VIP Members
Posts: 19892
Joined: 31/03/2014 10:02 am
Contact:

Re: Error : ตอนใส่เครื่องหมาย \ แล้วกดค้นหา ! จะแก้ไขได้ยังไงคะ เป็นเพราะอะไรคะ?

Post by thatsawan » 15/11/2014 12:22 pm

Code: Select all

 $sql_ary = array(
                        'SELECT'    => '*',
                        'FROM'      => array(
                                FORUMS_TABLE         => 'f',
                                ),
                        'WHERE' => " forum_id LIKE '" .  $db->sql_escape(utf8_clean_string($search)). "' OR forum_name LIKE '%" 
. $db->sql_escape(utf8_clean_string($search))."%'OR forum_short_name LIKE '%"
 . $db->sql_escape(utf8_clean_string($search))."%'",
                        );
                         $sql = $db->sql_build_query('SELECT', $sql_ary);
                         $result = $db->sql_query_limit($sql, $per_page, $start);
                         while($row = $db->sql_fetchrow($result)){
                                $forum_id =  $row['forum_id'];
                                $template->assign_block_vars('row', array(
                                        'FORUM_ID'                      => $forum_id,
                                        'FORUM_NAME'                    => $row['forum_name'],
                                        'FORUM_SHORT_NAME'              => $row['forum_short_name'],
                                ));}

Post Reply

Return to “Programming - PHP”

Users browsing this forum: Google [Bot] and 21 guests