Это сообщение об ошибке отображается при возникновении ошибки в запросе, которая привела к сбою. Он проявится при использовании:
mysql_fetch_array
/ mysqli_fetch_array()
mysql_fetch_assoc()
/ mysqli_fetch_assoc()
mysql_num_rows()
/ mysqli_num_rows()
Примечание. Эта ошибка вызывает не , если на ваш запрос не влияет строка. Только запрос с недопустимым синтаксисом генерирует эту ошибку.
Шаги устранения неполадок
error_reporting(-1);
. Если у вас есть какие-либо синтаксические ошибки, это укажет вам. mysql_error()
. mysql_error()
сообщит о любых ошибках MySQL, возникающих при выполнении вашего запроса. Пример использования: mysql_connect($host, $username, $password) or die("cannot connect");
mysql_select_db($db_name) or die("cannot select DB");
$sql = "SELECT * FROM table_name";
$result = mysql_query($sql);
if (false === $result) {
echo mysql_error();
}
mysql_real_escape_string()
, чтобы избежать ввода. mysqli_*
и mysql_*
. Они не то же самое и не могут использоваться вместе. Другие советы
mysql_*
функции не должны для нового кода. Они больше не поддерживаются, и сообщество приступило к процессу осушки . Вместо этого вы должны узнать о подготовленных операторах и использовать либо PDO , либо MySQLi . Если вы не можете решить, эта статья поможет выбрать. Если вы хотите узнать, вот хороший учебник PDO .
Чтобы изменить цвет текста, вам нужно выполнить эхо-код escape-кода ANSI: http://en.wikipedia.org/wiki/ANSI_escape_code
Еще один очень хороший источником этих управляющих кодов является http://ascii-table.com/ansi-escape-sequences.php
Вы можете использовать ANSICON для включения кодов терминалов ANSI в современных Windows. Существуют 32 и 64-разрядные версии, которые я использовал в Windows XP и Windows 7.
Используйте команду цвета. Легкий и встроенный.
Color 0F
Черно-белый
Color 0A
Черный и зеленый
Чтобы получить эту работу в Windows 10, вы можете включить этот флаг: ENABLE_VIRTUAL_TERMINAL_PROCESSING
.
С помощью этого раздела реестра вы можете установить это по умолчанию
[HKCU\Console] VirtualTerminalLevel dword 0x1
Это не отличный ответ, но если вы знаете, что целевая рабочая станция имеет Powershell, вы можете сделать что-то вроде этого (предполагая сценарий BAT / CMD):
CALL:ECHORED "Print me in red!"
:ECHORED
%Windir%\System32\WindowsPowerShell\v1.0\Powershell.exe write-host -foregroundcolor Red %1
goto:eof
вы можете использовать cecho .. вы также можете использовать его для встраивания прямо в свой скрипт, поэтому вам не нужно переносить .com или .exe
http: //www.codeproject .com / Статьи / 17033 / Add-Colors-к-Batch-файлов
Я хотел напечатать одну строчку другого цвета.
blockquote>Использовать последовательности escape-последовательности ANSI.
Windows до 10 - нет встроенной поддержки для Цвет ANSI на консоли
Для версии Windows ниже 10 консоль Windows не поддерживает по умолчанию выходную расцветку. Вы можете установить либо Cmder , ConEmu , ANSICON , либо Mintty (используемый по умолчанию в GitBash и Cygwin), чтобы добавить поддержка цвета для вашей командной консоли Windows.
Windows 10 - Цвета командной строки
Начиная с Windows 10 консоль Windows поддерживает ANSI Escape Sequences и некоторые цвета по умолчанию. Функция, поставляемая с обновлением Threshold 2 в ноябре 2015 г.
Демонстрация
Batch Command
win10colors.cmd
был записан Michele Locati :@echo off cls echo [101;93m STYLES [0m echo ^<ESC^>[0m [0mReset[0m echo ^<ESC^>[1m [1mBold[0m echo ^<ESC^>[4m [4mUnderline[0m echo ^<ESC^>[7m [7mInverse[0m echo. echo [101;93m NORMAL FOREGROUND COLORS [0m echo ^<ESC^>[30m [30mBlack[0m (black) echo ^<ESC^>[31m [31mRed[0m echo ^<ESC^>[32m [32mGreen[0m echo ^<ESC^>[33m [33mYellow[0m echo ^<ESC^>[34m [34mBlue[0m echo ^<ESC^>[35m [35mMagenta[0m echo ^<ESC^>[36m [36mCyan[0m echo ^<ESC^>[37m [37mWhite[0m echo. echo [101;93m NORMAL BACKGROUND COLORS [0m echo ^<ESC^>[40m [40mBlack[0m echo ^<ESC^>[41m [41mRed[0m echo ^<ESC^>[42m [42mGreen[0m echo ^<ESC^>[43m [43mYellow[0m echo ^<ESC^>[44m [44mBlue[0m echo ^<ESC^>[45m [45mMagenta[0m echo ^<ESC^>[46m [46mCyan[0m echo ^<ESC^>[47m [47mWhite[0m (white) echo. echo [101;93m STRONG FOREGROUND COLORS [0m echo ^<ESC^>[90m [90mWhite[0m echo ^<ESC^>[91m [91mRed[0m echo ^<ESC^>[92m [92mGreen[0m echo ^<ESC^>[93m [93mYellow[0m echo ^<ESC^>[94m [94mBlue[0m echo ^<ESC^>[95m [95mMagenta[0m echo ^<ESC^>[96m [96mCyan[0m echo ^<ESC^>[97m [97mWhite[0m echo. echo [101;93m STRONG BACKGROUND COLORS [0m echo ^<ESC^>[100m [100mBlack[0m echo ^<ESC^>[101m [101mRed[0m echo ^<ESC^>[102m [102mGreen[0m echo ^<ESC^>[103m [103mYellow[0m echo ^<ESC^>[104m [104mBlue[0m echo ^<ESC^>[105m [105mMagenta[0m echo ^<ESC^>[106m [106mCyan[0m echo ^<ESC^>[107m [107mWhite[0m echo. echo [101;93m COMBINATIONS [0m echo ^<ESC^>[31m [31mred foreground color[0m echo ^<ESC^>[7m [7minverse foreground ^<-^> background[0m echo ^<ESC^>[7;31m [7;31minverse red foreground color[0m echo ^<ESC^>[7m and nested ^<ESC^>[31m [7mbefore [31mnested[0m echo ^<ESC^>[31m and nested ^<ESC^>[7m [31mbefore [7mnested[0m
Вы можете просто создавать файлы с именем слова для печати, использовать findstr, который может печатать в цвете, а затем стирает файл. Попробуйте этот пример:
@echo off
SETLOCAL EnableDelayedExpansion
for /F "tokens=1,2 delims=#" %%a in ('"prompt #$H#$E# & echo on & for %%b in (1) do rem"') do (
set "DEL=%%a"
)
call :ColorText 0a "green"
call :ColorText 0C "red"
call :ColorText 0b "cyan"
echo(
call :ColorText 19 "blue"
call :ColorText 2F "white"
call :ColorText 4e "yellow"
goto :eof
:ColorText
echo off
<nul set /p ".=%DEL%" > "%~2"
findstr /v /a:%1 /R "^$" "%~2" nul
del "%~2" > nul 2>&1
goto :eof
Запустите color /?
, чтобы получить список цветов.
Мы использовали это с терминальными кодами ANSI . Не уверен, что они все еще работают, но вы можете попробовать их.
Я посмотрел на это, потому что я хотел ввести некоторые простые текстовые цвета в пакетный файл Win7. Это то, что я придумал. Спасибо за вашу помощь.
@echo off
cls && color 08
rem .... the following line creates a [DEL] [ASCII 8] [Backspace] character to use later
rem .... All this to remove [:]
for /F "tokens=1,2 delims=#" %%a in ('"prompt #$H#$E# & echo on & for %%b in (1) do rem"') do (set "DEL=%%a")
echo.
<nul set /p="("
call :PainText 09 "BLUE is cold" && <nul set /p=") ("
call :PainText 02 "GREEN is earth" && <nul set /p=") ("
call :PainText F0 "BLACK is night" && <nul set /p=")"
echo.
<nul set /p="("
call :PainText 04 "RED is blood" && <nul set /p=") ("
call :PainText 0e "YELLOW is pee" && <nul set /p=") ("
call :PainText 0F "WHITE all colors"&& <nul set /p=")"
goto :end
:PainText
<nul set /p "=%DEL%" > "%~2"
findstr /v /a:%1 /R "+" "%~2" nul
del "%~2" > nul
goto :eof
:end
echo.
pause
Это самокомпилированный гибрид bat / .net (должен быть сохранен как .BAT
), который можно использовать в любой системе, на которой установлена .NET-инфраструктура (редко можно увидеть окна без .NET framework даже для старейших установок XP / 2003). Он использует компилятор jscript.net для создания exe, способного печатать строки с различным цветом фона / переднего плана только для текущей строки.
@if (@X)==(@Y) @end /* JScript comment
@echo off
setlocal
for /f "tokens=* delims=" %%v in ('dir /b /s /a:-d /o:-n "%SystemRoot%\Microsoft.NET\Framework\*jsc.exe"') do (
set "jsc=%%v"
)
if not exist "%~n0.exe" (
"%jsc%" /nologo /out:"%~n0.exe" "%~dpsfnx0"
)
%~n0.exe %*
endlocal & exit /b %errorlevel%
*/
import System;
var arguments:String[] = Environment.GetCommandLineArgs();
var newLine = false;
var output = "";
var foregroundColor = Console.ForegroundColor;
var backgroundColor = Console.BackgroundColor;
var evaluate = false;
var currentBackground=Console.BackgroundColor;
var currentForeground=Console.ForegroundColor;
//http://stackoverflow.com/a/24294348/388389
var jsEscapes = {
'n': '\n',
'r': '\r',
't': '\t',
'f': '\f',
'v': '\v',
'b': '\b'
};
function decodeJsEscape(_, hex0, hex1, octal, other) {
var hex = hex0 || hex1;
if (hex) { return String.fromCharCode(parseInt(hex, 16)); }
if (octal) { return String.fromCharCode(parseInt(octal, 8)); }
return jsEscapes[other] || other;
}
function decodeJsString(s) {
return s.replace(
// Matches an escape sequence with UTF-16 in group 1, single byte hex in group 2,
// octal in group 3, and arbitrary other single-character escapes in group 4.
/\\(?:u([0-9A-Fa-f]{4})|x([0-9A-Fa-f]{2})|([0-3][0-7]{0,2}|[4-7][0-7]?)|(.))/g,
decodeJsEscape);
}
function printHelp( ) {
print( arguments[0] + " -s string [-f foreground] [-b background] [-n] [-e]" );
print( " " );
print( " string String to be printed" );
print( " foreground Foreground color - a " );
print( " number between 0 and 15." );
print( " background Background color - a " );
print( " number between 0 and 15." );
print( " -n Indicates if a new line should" );
print( " be written at the end of the ");
print( " string(by default - no)." );
print( " -e Evaluates special character " );
print( " sequences like \\n\\b\\r and etc ");
print( "" );
print( "Colors :" );
for ( var c = 0 ; c < 16 ; c++ ) {
Console.BackgroundColor = c;
Console.Write( " " );
Console.BackgroundColor=currentBackground;
Console.Write( "-"+c );
Console.WriteLine( "" );
}
Console.BackgroundColor=currentBackground;
}
function errorChecker( e:Error ) {
if ( e.message == "Input string was not in a correct format." ) {
print( "the color parameters should be numbers between 0 and 15" );
Environment.Exit( 1 );
} else if (e.message == "Index was outside the bounds of the array.") {
print( "invalid arguments" );
Environment.Exit( 2 );
} else {
print ( "Error Message: " + e.message );
print ( "Error Code: " + ( e.number & 0xFFFF ) );
print ( "Error Name: " + e.name );
Environment.Exit( 666 );
}
}
function numberChecker( i:Int32 ){
if( i > 15 || i < 0 ) {
print("the color parameters should be numbers between 0 and 15");
Environment.Exit(1);
}
}
if ( arguments.length == 1 || arguments[1].toLowerCase() == "-help" || arguments[1].toLowerCase() == "-help" ) {
printHelp();
Environment.Exit(0);
}
for (var arg = 1; arg <= arguments.length-1; arg++ ) {
if ( arguments[arg].toLowerCase() == "-n" ) {
newLine=true;
}
if ( arguments[arg].toLowerCase() == "-e" ) {
evaluate=true;
}
if ( arguments[arg].toLowerCase() == "-s" ) {
output=arguments[arg+1];
}
if ( arguments[arg].toLowerCase() == "-b" ) {
try {
backgroundColor=Int32.Parse( arguments[arg+1] );
} catch(e) {
errorChecker(e);
}
}
if ( arguments[arg].toLowerCase() == "-f" ) {
try {
foregroundColor=Int32.Parse(arguments[arg+1]);
} catch(e) {
errorChecker(e);
}
}
}
Console.BackgroundColor = backgroundColor ;
Console.ForegroundColor = foregroundColor ;
if ( evaluate ) {
output=decodeJsString(output);
}
if ( newLine ) {
Console.WriteLine(output);
} else {
Console.Write(output);
}
Console.BackgroundColor = currentBackground;
Console.ForegroundColor = currentForeground;
Пример coloroutput.bat -s "aa\nbb\n\u0025cc" -b 10 -f 3 -n -e
Вы также можете проверьте цветовую функцию carlos -> http://www.dostips.com/forum/viewtopic.php?f=3&t=4453
Меня раздражало отсутствие надлежащей раскраски в cmd, поэтому я пошел вперед и создал cmdcolor. Это просто прокси-сервер stdout, который ищет ограниченный набор управляющих последовательностей ANSI / VT100 (другими словами, как в bash), то есть echo \033[31m RED \033[0m DEFAULT | cmdcolor.exe
.
Поместите следующие строки в файл с именем ColourText.bas
на рабочем столе.
Imports System
Imports System.IO
Imports System.Runtime.InteropServices
Imports Microsoft.Win32
Public Module MyApplication
Public Declare Function GetStdHandle Lib "kernel32" Alias "GetStdHandle" (ByVal nStdHandle As Long) As Long
Public Declare Function SetConsoleTextAttribute Lib "kernel32" Alias "SetConsoleTextAttribute" (ByVal hConsoleOutput As Long, ByVal wAttributes As Long) As Long
Public Const STD_ERROR_HANDLE = -12&
Public Const STD_INPUT_HANDLE = -10&
Public Const STD_OUTPUT_HANDLE = -11&
Sub Main()
Dim hOut as Long
Dim Ret as Long
Dim Colour As Long
Dim Colour1 As Long
Dim Text As String
hOut = GetStdHandle(STD_OUTPUT_HANDLE)
Colour = CLng("&h" & Split(Command(), " ")(0))
Colour1 = Clng("&h" & Split(Command(), " ")(1))
Text = Mid(Command(), 7)
Ret = SetConsoleTextAttribute(hOut, Colour)
Console.Out.WriteLine(text)
Ret = SetConsoleTextAttribute(hOut, Colour1)
End Sub
End Module
Сохраните его и введите в командной строке следующее:
"C:\Windows\Microsoft.NET\Framework\v4.0.30319\vbc.exe" /target:exe /out:"%userprofile%\desktop\ColourText.exe" "%userprofile%\desktop\ColourText.bas" /verbose
A файл ColourText.exe появится на вашем рабочем столе. Переместите его в папку Windows.
Для использования вы должны использовать два символьных кода для установки цвета, например 01
, а не 1
.
ColourText ColourOfText ColourOfTextWhenFinished Text
EG Чтобы установить синий цвет на белый, не передавая ни одного текста, затем красным цветом на белом тексте, заканчивая синим цветом на сером.
ColourText F1 F1
ColourText F2 71 This is green on white
или
ColourText F1 F1
cls
ColourText F4 F4
Echo Hello
Echo Hello today
ColourText F1 F1
Также интересна команда CLS
. Color
команда без параметров сбрасывает все цвета в цвета запуска.
Чтобы получить код цвета, добавьте следующие числа вместе. Используйте калькулятор в режиме программистов. Это шестнадцатеричные числа. Они могут быть добавлены вместе, например, Red + Blue + FG Intensity = 13 = D. Поскольку 10+ не использовался, фон будет черным. Цветовые коды ДОЛЖНЫ быть двумя символами, например 08
не 8
.
FOREGROUND_RED = &H4 ' text color contains red.
FOREGROUND_INTENSITY = &H8 ' text color is intensified.
FOREGROUND_GREEN = &H2 ' text color contains green.
FOREGROUND_BLUE = &H1 ' text color contains blue.
BACKGROUND_BLUE = &H10 ' background color contains blue.
BACKGROUND_GREEN = &H20 ' background color contains green.
BACKGROUND_INTENSITY = &H80 ' background color is intensified.
BACKGROUND_RED = &H40 ' background color contains red.