Mysql Error Handling In Php
Contents |
and Objects Namespaces Errors Exceptions Generators References Explained Predefined Variables Predefined Exceptions Predefined Interfaces and php mysqli error Classes Context options and parameters Supported Protocols and Wrappers
Mysql Error Php
Security Introduction General considerations Installed as CGI binary Installed as an Apache module
Mysqli_query Error
Session Security Filesystem Security Database Security Error Reporting Using Register Globals User Submitted Data Magic Quotes Hiding PHP Keeping Current Features HTTP
Mysql Query Error
authentication with PHP Cookies Sessions Dealing with XForms Handling file uploads Using remote files Connection handling Persistent Database Connections Safe Mode Command line usage Garbage Collection DTrace Dynamic Tracing Function Reference Affecting PHP's Behaviour Audio Formats Manipulation Authentication Services Command Line Specific Extensions Compression and or die mysql error Archive Extensions Credit Card Processing Cryptography Extensions Database Extensions Date and Time Related Extensions File System Related Extensions Human Language and Character Encoding Support Image Processing and Generation Mail Related Extensions Mathematical Extensions Non-Text MIME Output Process Control Extensions Other Basic Extensions Other Services Search Engine Extensions Server Specific Extensions Session Extensions Text Processing Variable and Type Related Extensions Web Services Windows Only Extensions XML Manipulation Keyboard Shortcuts? This help j Next menu item k Previous menu item g p Previous man page g n Next man page G Scroll to bottom g g Scroll to top g h Goto homepage g s Goto search(current page) / Focus search box mysqli::$field_count » « mysqli::$error_list PHP Manual Function Reference Database Extensions Vendor Specific Database Extensions MySQL MySQLi mysqli Change language: English Brazilia
Learn Bootstrap Learn Graphics Learn Icons Learn How To JavaScript Learn JavaScript Learn jQuery Learn jQueryMobile Learn AppML Learn AngularJS Learn JSON Learn AJAX Server Side Learn SQL Learn PHP Learn ASP Web Building mysql_query error Web Templates Web Statistics Web Certificates XML Learn XML Learn XML AJAX Learn XML i cannot select mysql database DOM Learn XML DTD Learn XML Schema Learn XSLT Learn XPath Learn XQuery × HTML HTML Tag Reference HTML Event die(mysql_error()) Reference HTML Color Reference HTML Attribute Reference HTML Canvas Reference HTML SVG Reference Google Maps Reference CSS CSS Reference CSS Selector Reference W3.CSS Reference Bootstrap Reference Icon Reference JavaScript JavaScript Reference HTML DOM Reference http://php.net/manual/en/mysqli.error.php jQuery Reference jQuery Mobile Reference AngularJS Reference XML XML Reference XML Http Reference XSLT Reference XML Schema Reference Charsets HTML Character Sets HTML ASCII HTML ANSI HTML Windows-1252 HTML ISO-8859-1 HTML Symbols HTML UTF-8 Server Side PHP Reference SQL Reference ASP Reference × HTML/CSS HTML Examples CSS Examples W3.CSS Examples Bootstrap Examples JavaScript JavaScript Examples HTML DOM Examples jQuery Examples jQuery Mobile Examples AngularJS Examples AJAX Examples XML XML http://www.w3schools.com/php/func_mysqli_error.asp Examples XSLT Examples XPath Examples XML Schema Examples SVG Examples Server Side PHP Examples ASP Examples Quizzes HTML Quiz CSS Quiz JavaScript Quiz Bootstrap Quiz jQuery Quiz PHP Quiz SQL Quiz XML Quiz × PHP Tutorial PHP HOME PHP Intro PHP Install PHP Syntax PHP Variables PHP Echo / Print PHP Data Types PHP Strings PHP Constants PHP Operators PHP If...Else...Elseif PHP Switch PHP While Loops PHP For Loops PHP Functions PHP Arrays PHP Sorting Arrays PHP Superglobals PHP Forms PHP Form Handling PHP Form Validation PHP Form Required PHP Form URL/E-mail PHP Form Complete PHP Advanced PHP Arrays Multi PHP Date and Time PHP Include PHP File Handling PHP File Open/Read PHP File Create/Write PHP File Upload PHP Cookies PHP Sessions PHP Filters PHP Filters Advanced PHP Error Handling PHP Exception MySQL Database MySQL Database MySQL Connect MySQL Create DB MySQL Create Table MySQL Insert Data MySQL Get Last ID MySQL Insert Multiple MySQL Prepared MySQL Select Data MySQL Delete Data MySQL Update Data MySQL Limit Data PHP - XML PHP XML Parsers PHP SimpleXML Parser PHP SimpleXML - Get PHP XML Expat PHP XML DOM PHP - AJAX AJAX Intro AJAX PHP AJAX Database AJAX XML AJAX Live Search AJAX RS
here for a quick overview of the site Help Center Detailed answers to any questions you might have Meta Discuss the workings and policies of this site About Us Learn more http://stackoverflow.com/questions/4125559/php-mysql-error-handling about Stack Overflow the company Business Learn more about hiring developers or posting ads with us Stack Overflow Questions Jobs Documentation Tags Users Badges Ask Question x Dismiss Join the Stack Overflow Community Stack Overflow http://www.php5-tutorial.com/mysql/handling-errors/ is a community of 6.2 million programmers, just like you, helping each other. Join them; it only takes a minute: Sign up PHP MySQL error handling up vote 2 down vote favorite 1 Simple question mysql error (I hope). At the moment I am using the following code: mysql_query($sql) or header("Location: /error"); To prevent the rest of the script running I need to add exit; or die(). Is there any way to do that using the inline approach as above or do I need to use: $result = mysql_query($sql); if (!result) { header("Location: /error"); exit(); } Thanks php mysql share|improve this question edited Aug 28 '13 mysql error handling at 20:11 hdvianna 337211 asked Nov 8 '10 at 16:04 lethalMango 2,23583773 add a comment| 4 Answers 4 active oldest votes up vote 10 down vote accepted How about: function customDie($location) { header('Location: ' . $location); exit(); } mysql_query($sql) or customDie("/error"); share|improve this answer answered Nov 8 '10 at 16:07 Fosco 27.3k45593 Never thought about doing that, great idea. Thanks! –lethalMango Nov 8 '10 at 16:18 add a comment| up vote 5 down vote If you insist on doing things this way it is better to make a custom query method which handles all this. Something like function custom_mysql_query($query) { $doDebug=true; // Set to true when developing and false when you are deploying for real. $result=mysql_query($query); if(!$result) { if($doDebug) { // We are debugging so show some nice error output echo "Query failed\n
$query\n"; echo mysql_error(); // (Is that not the name) } else { // Might want an error message to the user here. } exit(); } } Then just call custom_mysql_query instead of mysql_query then you will always die if a query fails and if $debug is true, you will also get the query which failed and the database error. But really: You should NEVER use mysql_query or functions which call it(Such as the
name or a keyword or something like that. By default, PHP will not show you exactly what the problem is, only that you wrote a query which is not entirely correct. Let's try writing a faulty query to see the response from PHP: $query = mysql_query("SELECT id, namme FROM test_users"); while($row = mysql_fetch_array($query)) echo $row['id'] . " - " . $row["name"] . " is from " . $row["country"] . "
"; This is the example we are using a lot in this part of the tutorial, but in this case, we have misspelled the name column to provoke an error, which we get: Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in test.php on line 7 As you can see, the error is not thrown until we try using the resource returned by the mysql_query() function, which we do when we call the mysql_fetch_array() function, in my file located on line 7. The error is very generic and not very helpful. This is on purpose, because knowledge about your database structure makes your website more vulnerable to SQL injection attacks, a problem we will discuss later on. You might be able to spot the error and fix it in a lot of situations, but if not, you can use the mysql_error() function to get a bit more information abut the problem. This function simply returns any error returned from the last executed MySQL function. You should only use this function for finding and fixing problems, and then remove it again once the problem has been fixed. Here's the above example, but where we call the mysql_error() function to get more information: $query = mysql_query("SELECT id, namme FROM test_users"); while($row = mysql_fetch_array($query)) echo $row['id'] . " - " . $row["name"] . " is from " . $row["country"] . "
"; echo mysql_error(); This will give you a far more useful error message: Unknown column 'namme' in 'field list' Try making various errors in the SQL query and see the message that MySQL returns through the mysql_error() function, to see how it responds. This will help you identify SQ