note 50817 added to function.mysql-query

From: Date: Thu, 10 Mar 2005 18:11:18 +0000
Subject: note 50817 added to function.mysql-query
Groups: php.notes 
Request: Send a blank email to php-notes+get-86215@lists.php.net to get a copy of this message
modification to the safe_query function previously posted by ingemar - add possibility to pass a variable or an array - add query_error_log management function safe_query($query, $values) { $query_parts = preg_split("/\?/", $query); $safe_query = array_shift($query_parts); $needed_values = count($query_parts); if ($needed_values) { if (is_array($values)) { foreach ($values as $data) { $safe_query .= mysql_escape_string($data).array_shift($query_parts); } } else { $safe_query .= mysql_escape_string($values).array_shift($query_parts); } if (count($query_parts)) { $value_sent = (is_array($values)) ? count($values) : 1; $cf = fopen(QUERY_ERROR_LOG, "a"); flock( $cf, LOCK_EX ); fputs($cf, date("Y/m/d H:i:s").' -- '.$GLOBALS['PHP_SELF'].' -- '.mysql_error()."\n"); fputs($cf, 'Query '.$query.' needs '.$needed_values.' values, you only sent '.$value_sent."\n\n"); flock( $cf, LOCK_UN ); fclose($cf); die('Une erreure est survenue. S.V.P. faire parvenir un message à support@mysite.com afin de nous informer du problème. Merci'); } } if (!$q_result = mysql_query($safe_query)) { $cf = fopen(QUERY_ERROR_LOG, "a"); flock( $cf, LOCK_EX ); fputs($cf, date("Y/m/d H:i:s").' -- '.$GLOBALS['PHP_SELF'].' -- '.mysql_error()."\n"); fputs($cf, $safe_query."\n\n"); flock( $cf, LOCK_UN ); fclose($cf); die('Une erreure est survenue. S.V.P. faire parvenir un message à support@mysite.com afin de nous informer du problème. Merci'); } return $q_result; } QUERY_ERROR_LOG is a define value; define('QUERY_ERROR_LOG','/home/user/logs/query_error_log.txt'); use the fonction this way: $query = "SELECT * FROM a WHERE b='?' AND c='?'"; $values = array(1,2); $result = safe_query($query, $values); or this way: $query = "SELECT * FROM a WHERE b='?'"; $result = safe_query($query, 1); ---- Manual Page -- http://www.php.net/manual/en/function.mysql-query.php Edit -- http://master.php.net/manage/user-notes.php?action=edit+50817 Delete: added to the manual -- http://master.php.net/manage/user-notes.php?action=delete+50817&report=yes&reason=added+to+the+manual Delete: bad code -- http://master.php.net/manage/user-notes.php?action=delete+50817&report=yes&reason=bad+code Delete: spam -- http://master.php.net/manage/user-notes.php?action=delete+50817&report=yes&reason=spam Delete: useless -- http://master.php.net/manage/user-notes.php?action=delete+50817&report=yes&reason=useless Delete: other reasons -- http://master.php.net/manage/user-notes.php?action=delete+50817&report=yes Reject -- http://master.php.net/manage/user-notes.php?action=reject+50817&report=yes Search -- http://master.php.net/manage/user-notes.php

« previous php.notes (#86215) next »