sqlstate
تابع/ویژگی sqlstate «کد خطای SQLSTATE» را برمی گرداند. «کد خطا (Error Code)» یک رشته پنج کاراکتری استاندارد است. مقدار 00000 یعنی هیچ خطایی نیست.
تعریف کوتاه و کاربرد sqlstate
طبق منبع، sqlstate یا mysqli_sqlstate() کد خطای آخرین خطا را می دهد. این کد مطابق استاندارد ANSI SQL و ODBC است و همیشه پنج کاراکتر دارد.
نحو (Syntax)
سبک شیءگرا: $mysqli->sqlstate. سبک رویه ای: mysqli_sqlstate(connection). مقدار 00000 یعنی همه چیز اوکی است.
نمونه کد شیءگرا
<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "my_db");
if ($mysqli->connect_errno) {
echo "Failed to connect to MySQL: " . $mysqli->connect_error;
exit();
}
$sql = "CREATE TABLE Persons (Firstname VARCHAR(30), Lastname VARCHAR(30), Age INT);";
if (!$mysqli->query($sql)) {
echo "SQLSTATE error: " . $mysqli->sqlstate . "\n";
}
$mysqli->close();
?>
نمونه کد رویه ای
<?php
$con = mysqli_connect("localhost", "my_user", "my_password", "my_db");
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
exit();
}
$sql = "CREATE TABLE Persons (Firstname VARCHAR(30), Lastname VARCHAR(30), Age INT);";
if (!mysqli_query($con, $sql)) {
echo "SQLSTATE error: " . mysqli_sqlstate($con) . "\n";
}
mysqli_close($con);
?>
گام های عملی
- اتصال بساز و خطا را بررسی کن.
- کوئری خطاساز اجرا کن، مثلاً ساخت جدول تکراری.
- کد کد خطای SQLSTATE را بخوان و چاپ کن.
- اتصال را ببند و تمیزکاری انجام بده.
نکته: برای متن خطا از پیام خطای mysqli استفاده کن. برای عدد خطا هم کد خطای SQLSTATE را کنار errno بررسی کن.
هشدار: روی محیط واقعی آزمایش نکن. ساخت جدول تکراری می تواند خطاهای ناخواسته بسازد. در محیط تست تمرین کن.
جمع بندی سریع
sqlstateاستاندارد و پنج کاراکتری است.00000یعنی خطایی وجود ندارد.- شیءگرا و رویه ای، هر دو پشتیبانی می شوند.
- برای دیباگ، sqlstate را کنار error/errno ببین.