Assalomu alaykum, yordam.uz saytimizga xush kelibsiz.
Bu saytda o`zingizni qiziqtirgan savollarga javob olishingiz va o`z sohangiz bo`yicha savollarga javob berishingiz mumkin. Bizning Oilamizga a'zo bo`lganingiz uchun chuqur Minnatdorchilik bildiramiz !!!

SQL error nima sababdan chiqmoqda?

+1 ovoz
150 marta ko‘rilgan
so‘radi 22 sentabr, 17 parmonov98 (1,479 bal)

 Warning: PDOStatement::execute(): SQLSTATE[42000]: Syntax error or access violation: 1064 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 ''0' , '3'' at line 2 in E:\os\OpenServer\domains\mvc.lc\libs\model_lib.php on line 48

pastda bazaga so'rov jo'natish data olish metodi: 

$type = qanday turdagi so'rovligini bildirib bunda type aniqlanib switch case lari orqali amalga oshiradi

 $items =  sql so'rovda almashtirilishi kerak bo'lgan replacementlar! 

function select($type = 'p', array $items = array() ){

$start = (($items[':pagenumber']) * POSTS_ON_PAGE) - POSTS_ON_PAGE;

unset($items[':pagenumber']);

switch($type){

case 'c': 

$sql = "SELECT cat_link FROM `cates_of_site`";

break;

case 'cp': 

echo 1;

$items = array_merge($items, array(':start' => $start, ':count' => POSTS_ON_PAGE));

$sql =  "SELECT  `ct.id`, `ct.cat_title`, `ct.cat_link`, `pt.id`, `pt.post_title`, `pt.post_link`, `pt.post_content`, `pt.post_author`, `pt.post_img`, `pt.post_date`, 

`pt.post_cat_id` FROM `cates_of_site` as ct, posts_of_site as pt WHERE ct.id = pt.post_cat_id AND `ct.cat_link` = :category LIMIT :start , :count";

break;

case 'u': 

$sql = $sql;

break;

case 'eu': 

$sql = $sql;

break;

}

$sth = $this->db->prepare($sql);

if (empty($items)){

$sth->execute();

}else{

$sth->execute($items);

}

return $data = $sth->fetchAll(PDO::FETCH_ASSOC);

}

4 Javoblar

+3 ovoz
javob berdi 23 sentabr, 17 vejon (2,980 bal)
tanlangan 25 sentabr, 17 parmonov98
 
Eng yaxshi javob
shu php kodda berilgan so'rovni to'g'ridan-to'g'ri mysqlga berib ko'ring, ya'ni bironta mysql dastur yordamida.
izoh qoldirdi 24 sentabr, 17 parmonov98 (1,479 bal)
tahrirlandi 24 sentabr, 17 parmonov98
bunda PDO ishlatilgan, pdo da final query ni o'ziga ruxsat bo'masa kerak?! agar iloji bo'lsa qanday? ya'ni qanday qilib o'sha final query ni olishim mumkin mn!?
izoh qoldirdi 25 sentabr, 17 parmonov98 (1,479 bal)
openserverda query logdan qarasam, execute ni negadur almashtirmagan ekan! keyin iloj yoi'q STM::bindParam dan foydalandim ishladi.hammag rahmat.
+2 ovoz
javob berdi 23 sentabr, 17 alfraganus (810 bal)
qo'shtirnoqdan bo'lishi mumkun, '' qo'shirnoqlari ato chiqarmedi, `` bular esa ko'pincha chiqaradi, shuni sinab koring
izoh qoldirdi 24 sentabr, 17 parmonov98 (1,479 bal)
foydasi bo'madi!
+2 ovoz
javob berdi 23 sentabr, 17 Sardor Dushamov (1,660 bal)

WHERE ct.id = pt.post_cat_id AND `ct.cat_link` = :category LIMIT :start , :count"

LIMIT dan keyin 2 ta parametr bergansiz , yoki bitta parametr bering yoki OFFSET ni tushirib qoldirgansiz

izoh qoldirdi 24 sentabr, 17 parmonov98 (1,479 bal)
tushirib qoldirganimku yo'q, chunki error o'zida start va count qiymatlari qo'yilgan, faqat qanday tushunarsiz xatolik bo'lyapti!
+2 ovoz
javob berdi 26 sentabr, 17 Farhodjon (1,192 bal)
SQL so'rovni o'zini chiqarib ko'ring yoki SQL di o'zida tekshirib ko'ring aytadi xatolik nimada ekanini

Assalomu alaykum, yordam.uz saytimizga xush kelibsiz.

Bu saytda o`zingizni qiziqtirgan savollarga javob olishingiz va o`z sohangiz bo`yicha savollarga javob berishingiz mumkin.

Bizning Oilamizga a'zo bo`lganingiz uchun chuqur Minnatdorchilik bildiramiz !!!

Telegram kanal YordamUzRss

...