Вместо того, чтобы отвечать на ваш вопрос, давая вам рыбу, я собираюсь научить вас, как ловить рыбу для себя.
Ниже показано, как я структура SQL ...
function example()
{
if (!failed_condition) {/*error handling*/}
else
{
$query1 = '';//Construct queries, NEVER put them in loops.
$result1 = mysql_query($query1);
if ($result1)
{
//success
$query2 = '';
$result2 = mysql_query($query2);
if ($result2)
{
//success
}
else {mysql_error_report($query2,mysql_error(),__FUNCTION__);}
}
else {mysql_error_report($query1,mysql_error(),__FUNCTION__);}
}
}
Как вы можете видеть, единственный раз, когда я отступ еще один пробел, когда я сталкиваюсь успешный запрос SQL. В противном случае я передам запрос, ошибку и имя функции PHP в службу обработки ошибок.
Вот код обработки ошибок ...
function mysql_error_report($q,$e,$f)
{
if (!isset($database)) {include('database.php');}
if (isset($_SERVER['HTTP_USER_AGENT'])) {$ua = mysql_real_escape_string($_SERVER['HTTP_USER_AGENT']);} else {$ua = '';}
if (isset($database))
{
if (isset($_SESSION['member_id'])) {$id = $_SESSION['member_id'];} else {$id = 0;}
if (isset($_SESSION)) {$session = mysql_real_escape_string(session_id());} else {$session = 0;}
$ip = mysql_real_escape_string(getenv('REMOTE_ADDR'));
if (ip_version($ip)=='4')
{
$ipsql = "INET_ATON('$ip')";
}
else
{
$ip = ip2long6($ip);
$ipsql = mysql_real_escape_string($ip);
}
$query = mysql_real_escape_string($q);
$error = mysql_real_escape_string($e);
$function = mysql_real_escape_string($f);
if (isset($_SESSION['cms_browser'])) {$browser = mysql_real_escape_string($_SESSION['cms_browser'].' '.$_SESSION['cms_browser_version']);} else {$browser = '';}
if (isset($_SESSION['type'])) {$type = mysql_real_escape_string($_SESSION['type']);} else if (isset($_SESSION['cms_browser'])) {$type = 'Browser';} else {$type = 'Unknown';}
if (isset($_SERVER['REQUEST_URI'])) {$url = $_SERVER['REQUEST_URI'];} else {$url = '';}
$query1 = "INSERT INTO errors_sql (id_session, type, id_user, browser, date, ip, function, mysql_error, mysql_query, url, user_agent) VALUES ('$session', '$type', '$id', '$browser', NOW(), $ipsql, '$function', '$error', '$query', '$url', '$ua')";
$result1 = mysql_query($query1);
if (!$result1) {mysql_error_report_mail($q,$e,$f,$ua);}
}
else {mysql_error_report_mail($q,$e,$f,$ua);}
Теперь, когда у вас есть что-то создать журнал для вас, чтобы быть в состоянии принять меры по вы должны быть в состоянии увидеть , что происходит. Вам нужно включить ведение журнала MySQL. Так как это не имеет прямое отношение к этому вопросу, я просто дам вам ссылку ...
http://www.jabcreations.com/blog/enable-mysql-logging
После того, как вы что далеко все, что вам нужно, это возможность просмотра файлов в реальном журнал без необходимости вручную перезагрузите документ. Я использовал BareTail, ранее я использовал TailforWin32. Я использую подсветку синтаксиса, синий для SELECT
, зеленый для UPDATE
, синий для INSERT
и красный для DELETE
.
Оставьте открытый MySQL-журнал открытым и когда вы столкнулись с проблемой, войдите в него.
Я также настоятельно рекомендую записывать все ваши ошибки PHP, JavaScript и HTTP. Если вы действительно хотите пойти все на пиная donkies включить отчеты об ошибках чувствительности для PHP до максимума ...
error_reporting(E_ALL);
... и это заставит вас использовать isset()
.
Не стесняйтесь спрашивать о разъяснениях и наслаждаться возможностью ловить рыбу для себя.;-)
Работайте над ответом, чтобы научить вас, как ловить рыбу, а не давать вам рыбу ... – John
Вы должны обновить вопрос со всеми соответствующими битами кода, который вы используете. Удалил мой ответ и запустил его, поскольку вопрос не завершен. –
@BurhanKhalid Я обновил свой вопрос с помощью рабочего запроса – EnexoOnoma