Anisi

چند سوال در مورد توابع mysqli

9 پست در این موضوع قرار دارد

سلام

یه چندتا مشکل دارم با mysql.

الان تابع معادل mysql_num_rows و mysqli_connect_errno توی حالت oop چی میشه؟

این دو تا جواب نمیده!


$db -> num_rows();
$db -> erno();

و یه مشکل دیگه اینکه قبلا وقتی می خواستم چک کنم کوئری SELECT نتیجه داشته یا نه، یه شرط می ذاشتم براش:


$query = "SELECT FROM ban WHERE ip=$userIp AND type=$type";
$res = $myDb-> query($query);
if ($res) return false; else die('Fattal Error!!! Contact Admin');

اما الان جواب نمیده!

نکنه برای DELETE و UPDATE هم همین مشکل پیش بیاد!

اشکال از کجاست؟

چون این مشکلو داشتم، مجبور شدم کوئری رو به این شکل بازنویسی کنم:


$query = "SELECT until FROM ban WHERE username=$username AND type=$type";
$res = $myDb -> query($query);
$res = $res -> fetch_assoc();
if (count($res) > 0)
{
//...
}

ویرایش شده در توسط Anisi
0

به اشتراک گذاری این پست


لینک به پست

شماره خطا:


$mysqli->errno

برای تعداد خروجی هم num_rows هست و تابع mysqli_num_rows

طبق توضیحات:


Returns FALSE on failure. For successful SELECT, SHOW, DESCRIBE or EXPLAIN queries mysqli_query() will return a mysqli_result object. For other successful queries mysqli_query() will return TRUE.

برای بررسی میتوانید چک کنید خروجی object باشه: is_object

2

به اشتراک گذاری این پست


لینک به پست

شماره خطا:


$mysqli->errno

برای تعداد خروجی هم num_rows هست و تابع mysqli_num_rows

طبق توضیحات:


Returns FALSE on failure. For successful SELECT, SHOW, DESCRIBE or EXPLAIN queries mysqli_query() will return a mysqli_result object. For other successful queries mysqli_query() will return TRUE.

برای بررسی میتوانید چک کنید خروجی object باشه: is_object

ممنون از پاسخ مختصر و مفیدتون

یعنی برای بررسی درست اجرا شدن کوئری هایی به غیر از SELECT, SHOW, DESCRIBE or EXPLAIN میشه از دستور شرطی اسفاده کرد، ولی برای بررسی درست اجرا شدن این کوئری ها حتما باید از is_object استفاده بشه، و برای اینکه بفهمیم رکوردی مطابق کوئری در جدول وجود داشته یا نه از num_rows یا تابع mysqli_num_rows باید استفاده بشه و is_object جواب نمیده.

امیدوارم خلاصه و صحیح باشه.

اما در مورد errno، این خطا رو میده:

Undefined property: dbModel::$errno in C:\wamp\www\ins\controller\customerController.php
ویرایش شده در توسط Anisi
0

به اشتراک گذاری این پست


لینک به پست

شما خودتون کلاس رو نوشتید یا فریمورک هست؟

0

به اشتراک گذاری این پست


لینک به پست

شما خودتون کلاس رو نوشتید یا فریمورک هست؟

خودم نوشتم. اما خیلی ساده:


public function __construct()
{
@$this->db = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
if($this-> db -> errno )
{
die('خطا: امکان برقراری ارتباط با پایگاه داده وجود ندارد');
}
$this->db->set_charset('utf8');
}

ویرایش شده در توسط Anisi
0

به اشتراک گذاری این پست


لینک به پست

شما به جای mysqli چرا از کلاس PDO استفاده نمیکنین خیلی بهتره

1

به اشتراک گذاری این پست


لینک به پست

شما به جای mysqli چرا از کلاس PDO استفاده نمیکنین خیلی بهتره

آخه الان نوشتمش دیگه!

ان شا ا... توی پروژه بعدی

0

به اشتراک گذاری این پست


لینک به پست

اگر برنامه نویسی برنامه رو هنوز شروع نکردید

پیشنهاد منم PDO هست

توابعی که در اختیار میزاره خیلی ساده و روان هست

1

به اشتراک گذاری این پست


لینک به پست

میتونین از متد

$db->affected_rows

استفاده کنید که تعداد row هایی که کوئری بهشون اعمال شده رو برمیگردونه که حداقل 1 هست و در غیر این صورت 0

http://www.php.net/manual/en/mysqli.affected-rows.php

2

به اشتراک گذاری این پست


لینک به پست

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری