محمد المصري12 نشر 2 أكتوبر 2022 أرسل تقرير مشاركة نشر 2 أكتوبر 2022 سلام عليكم اواجه هذا الخطأ فقط في ال live لكن على الللوكال سيرفر الدنيا شغاله جدا PHP Fatal error: Uncaught Error: Call to a member function bind_param() on bool الكود $name = mysqli_real_escape_string($conn,$_POST['name']); $defaultLang = mysqli_real_escape_string($conn,$_POST['defaultLang']); $section = mysqli_real_escape_string($conn,$_POST['section']); $workTitle = mysqli_real_escape_string($conn,$_POST['workTitle']); $hiring = mysqli_real_escape_string($conn,$_POST['hiring']); $permission = mysqli_real_escape_string($conn,$_POST['permission']); $username = mysqli_real_escape_string($conn,$_POST['username']); $password = mysqli_real_escape_string($conn,password_hash($_POST['password'], PASSWORD_DEFAULT)); $email = mysqli_real_escape_string($conn,$_POST['email']); $created_by = mysqli_real_escape_string($conn,$_POST['created_by']); $created_at = mysqli_real_escape_string($conn,date('Y-d-m')); if (isset($_FILES['image']['name'])) { $filename = $_FILES['image']['name']; // Valid extension $valid_ext = array('png','jpeg','jpg'); $image = time() . $_FILES['image']['name']; // Location $location = '../assets/images/' . $image; // file extension $file_extension = pathinfo($location, PATHINFO_EXTENSION); $file_extension = strtolower($file_extension); // Check extension if(in_array($file_extension,$valid_ext)){ // Compress Image compressImage($_FILES['image']['tmp_name'],$location,35); $imageAdds = $image; } else { exit ; } } else{ $imageAdds = 'bee.png'; } if (mysqli_num_rows($chkUSR) > 0){ echo 'userFound'; exit; } if (mysqli_num_rows($chkMAIL) > 0){ echo 'emailFound'; exit; } $stmt = $conn->prepare( "INSERT INTO users(first_name,lang, section, title, hiring, permission, profile_image, username, password, email,created_at,verified_at,created_by) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?) "); echo $conn->error; $stmt->bind_param("sssssssssssss", $name,$defaultLang,$section,$workTitle,$hiring,$permission,$imageAdds,$username,$password,$email,$created_at,$created_at,$created_by); //---- //$result = $conn->query("INSERT INTO users(first_name,lang, section, title, hiring, permission, profile_image, username, password, email,created_at,verified_at,created_by) VALUES ('$name','$defaultLang','$section','$workTitle','$hiring','$permission','$imageAdds','$username','$password','$email','$created_at','$created_at','$created_by')"); if ($stmt->execute()) { echo "done"; } else{ echo "Errormessage: %s\n". $conn->error; } الخطأ يشير الى هذا السطر $stmt->bind_param("sssssssssssss", $name,$defaultLang,$section,$workTitle,$hiring,$permission,$imageAdds,$username,$password,$email,$created_at,$created_at,$created_by); ما المشكلة فضلا 1 اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
0 سمير عبود نشر 2 أكتوبر 2022 أرسل تقرير مشاركة نشر 2 أكتوبر 2022 شرح المشكلة: عند إستدعاء التابع: bind_param $stmt->bind_param("sssssssssssss", $name,$defaultLang,$section,$workTitle,$hiring,$permission,$imageAdds,$username,$password,$email,$created_at,$created_at,$created_by); يجب أن يُستدعى إنطلاقاً من كائن من النوع mysqli_stmt لكن حالياً يتم إستدعاؤه من خلال متغير يحمل قيمة بوليانية false. أي أن stmt ليس من النوع mysqli_stmt و إنما bool ما يعني أن ما يُعيده السطر: $conn->prepare( "INSERT INTO users(first_name,lang, section, title, hiring, permission, profile_image, username, password, email,created_at,verified_at,created_by) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?) "); هو false حيث أن تهيئة الإستعلام فشلت لسبب ما. 1 اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
0 محمد المصري12 نشر 2 أكتوبر 2022 الكاتب أرسل تقرير مشاركة نشر 2 أكتوبر 2022 طيب حلها ايه اخي الكريم اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
0 سمير عبود نشر 2 أكتوبر 2022 أرسل تقرير مشاركة نشر 2 أكتوبر 2022 بتاريخ 1 دقيقة مضت قال محمد المصري5: طيب حلها ايه اخي الكريم لا أدري ما السبب، لم أتمكن من تحديده إنطلاقاً من الكود، رُبما إختلاف إصدار PHP بين البيئتين أدى لظهور هذا الخطأ. جرب إستخدام نفس الإصدار الذي تستخدمه محلياً. على كل الأحوال يُفضل إستخدام PDO بدل mysqli و إتباع نهج البرمجة كائنية التوجه. اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
0 ايمن ميلاد نشر 6 ديسمبر 2023 أرسل تقرير مشاركة نشر 6 ديسمبر 2023 بتاريخ On 2/10/2022 at 19:08 قال سمير عبود: لا أدري ما السبب، لم أتمكن من تحديده إنطلاقاً من الكود، رُبما إختلاف إصدار PHP بين البيئتين أدى لظهور هذا الخطأ. جرب إستخدام نفس الإصدار الذي تستخدمه محلياً. على كل الأحوال يُفضل إستخدام PDO بدل mysqli و إتباع نهج البرمجة كائنية التوجه. اخي ماذا يعني stmt وconn هل هما متغيرات لانه لحظت في pdo يتم استخدامهم كثيرا 1 اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
0 Mustafa Suleiman نشر 6 ديسمبر 2023 أرسل تقرير مشاركة نشر 6 ديسمبر 2023 بتاريخ 7 ساعة قال ايمن ميلاد: اخي ماذا يعني stmt وconn هل هما متغيرات لانه لحظت في pdo يتم استخدامهم كثيرا عند استخدام PDO (PHP Data Objects) للتفاعل مع قواعد البيانات، يتم استخدام $stmt و $conn كمتغيرات شائعة. حيث أن $stmt (Statement) يستخدم لتمثيل البيانات المستعلمة (query) أو العبارة التي تقوم بتنفيذها على قاعدة البيانات باستخدام PDO، فبعد تحضير الاستعلام وتنفيذه، تستطيع استخدام $stmt لاسترجاع النتائج أو التحكم في تأثير الاستعلام. أما $conn (Connection) هو متغير يستخدم لتمثيل اتصال PDO بقاعدة البيانات، ونستخدمه لتنفيذ الاستعلامات أو التفاعل مع قاعدة البيانات. مثال على كيفية استخدامهم: // الاتصال بقاعدة البيانات $dsn = "mysql:host=localhost;dbname=mydatabase"; $username = "username"; $password = "password"; $options = array( PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_EMULATE_PREPARES => false, ); try { $conn = new PDO($dsn, $username, $password, $options); } catch (PDOException $e) { die("Connection failed: " . $e->getMessage()); } // استعلام $sql = "SELECT * FROM mytable WHERE column = :value"; $stmt = $conn->prepare($sql); // تمرير القيمة $value = "some_value"; $stmt->bindParam(':value', $value); // تنفيذ الاستعلام $stmt->execute(); // استخدام نتائج الاستعلام while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { // فعل شيء مع البيانات } // إغلاق الاتصال $conn = null; اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
السؤال
محمد المصري12
سلام عليكم
اواجه هذا الخطأ فقط في ال live لكن على الللوكال سيرفر الدنيا شغاله جدا
PHP Fatal error: Uncaught Error: Call to a member function bind_param() on bool
الكود
الخطأ يشير الى هذا السطر
ما المشكلة فضلا
رابط هذا التعليق
شارك على الشبكات الإجتماعية
5 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.