mehran-b 2385 ارسال شده در مرداد 96 گزارش بازنشر ارسال شده در مرداد 96 (ویرایش شده) سلام بر دوستان و ستون های انجمن در حال طراحی یک پلاگین خبرخوان هوشمند هستم که دو مشکل واقعا نمیدونم از کجاست مطرح میکنم انشاالله حل بشه. مود اول یه ارورلاگ هست مربوط به یکی از تیبل های پلاگین که همون ارور Error Code: 1062. Duplicate entry '1' for key 'PRIMARY' هست در حالی که من قبلش چک میکنم که وجود نداشته باشه همچین ردیفی در جدول و بعد insert میکنم. استرکچر تیبل به این شکل هست: خوب همون طور که مشخصه ارور مربوط به ستون hash هست و ستون id یونیک و دو ستون status و time صرفا index هستند و یونیک نیستند. کدی که باهاش چک میکنم که همچین رکوردی هست و اگر نبود insert میکنم اینه: foreach($post_link as $link) : if($wpdb->get_var($wpdb->prepare("SELECT id FROM $table_name WHERE hash = %s", hash('sha256', $link))) === null) $wpdb->insert($table_name, array('hash' => hash('sha256', $link), 'link' => $link, 'status' => 'Q', 'source_name' => $source_name, 'time' => date("Y-m-d H:i:s")), array('%s', '%s', '%s', '%s', '%s')); endforeach; خوب میریم سراغ موردی بعدی مورد بعدی هم یه ارورلاگه که مطمئنم مربوط به افزونه ام میشه ولی به یکی از فایل اصلی وردپرس اشاره میکنه ارورلاگ اینه: Warning: Invalid argument supplied for foreach() in /www/htdocs/XXXXXXX/wordpress/wp-includes/class-wp-list-util.php on line 153 البته به یه موردی اشاره کنم که wp_list_pluck رو مستقیم توی کدهای افزونه استفاده نکردم ولی شاید توابع دیگه وردپرس که استفاده کردم توی پلاگین از این تابع استفاده کنند. توابعی که از وردپرس استفاده کردم توی پلاگینم اینا هستند: get_option(); wp_die(); apply_filters(); register_activation_hook(); $wpdb::get_var(); $wpdb::get_charset_collate(); dbDelta(); wp_insert_category(); add_action(); add_menu_page(); get_current_screen(); update_option(); add_option(); wp_remote_get(); wp_remote_retrieve_response_code(); wp_nonce_field(); $wpdb::insert(); wp_insert_post(); wp_set_post_terms(); wp_update_post(); wp_get_post_terms(); $wpdb::get_row(); $wpdb::update(); تشکر از راهنماییتون. یا حق ویرایش شده مرداد 96 توسط mehran-b نقل قول لینک به ارسال
Morteza 34190 ارسال شده در مرداد 96 گزارش بازنشر ارسال شده در مرداد 96 سلام برای مورد اول، چند سطر از خروجییتون رو باید ببینیم تا بشه بهتر تصمیم گرفت. منظور سطرهایی هست که توی دیتابیستون وارد شده. برای مورد دوم هم باید بخش به بخش توابع رو از افزونه خارج کنید تا به نقطه اصلی برسید چون شاید براساس یک رابطه باشه و مستقیم از تابع خاضی خطا نگیره. 1 نقل قول لینک به ارسال
mehran-b 2385 ارسال شده در مرداد 96 مالک گزارش بازنشر ارسال شده در مرداد 96 در 1 ساعت قبل، Morteza گفته است : سلام برای مورد اول، چند سطر از خروجییتون رو باید ببینیم تا بشه بهتر تصمیم گرفت. منظور سطرهایی هست که توی دیتابیستون وارد شده. برای مورد دوم هم باید بخش به بخش توابع رو از افزونه خارج کنید تا به نقطه اصلی برسید چون شاید براساس یک رابطه باشه و مستقیم از تابع خاضی خطا نگیره. اینم یه نما از تیبل. link رو base64_encode اش میکنم میریزم توی دیتابیس و hash هم الگوریتمش SHA-256 هست. نقل قول لینک به ارسال
Mobin 1669 ارسال شده در شهریور 96 گزارش بازنشر ارسال شده در شهریور 96 خطای اول شما مربوط به فیلد hash نیست ممکنه مربوط به status یا id باشه مقدار فیلد id ور (11)INT قرار بدین ببینین باز هم این خطا میاد؟ خطا در مورد وارد کردن مقدار 1 در یک فیلد که قبلا مقدار 1 درونش وجود داره صحبت میکنه در مورد خطای دوم باید کد foreach رو قرار بدید چیزهایی که باید در نظر داشته باشید این هست که مقداری که وارد foreach میشه حتما ارایه یا ابجکت باشه و اینکه چک کنین حتما مقدار داشته باشه و نول نباشه مثلا اگه مقدار شما اسمش values$ باشه حتما قبل حلقه چک کنین خالی نباشه if(!empty($values)){ foreach($values as $value){ //کدهای حلقه } } 1 نقل قول لینک به ارسال
پست های پیشنهاد شده
به گفتگو بپیوندید
هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .