Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Проблемы с обработкой mysql-запроса PHP-скриптом / 15 сообщений из 15, страница 1 из 1
27.03.2014, 23:06:29
    #38598601
jmp
jmp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с обработкой mysql-запроса PHP-скриптом
Есть запрос SELECT * FROM sal; , который передается через форму
<form action="<? print $PHP_SELF ?>" method="post">
<br><textarea name="com" rows="5" cols="75"></textarea>
<p><input type="SUBMIT" value="Выполнить" </form>

в php-скрипт. Запрос успешно выполняется.

Пробую другой запрос через форму: SELECT * FROM sal WHERE city = 'San Jose';

И вот тут возникает следующая ошибка:
авторОшибка: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '\'San Jose\'' at line 2

Однако, если я передаю этот запрос в переменную напрямую, то запрос успешно выполняется, т.е.:
$com= "SELECT * FROM sal WHERE city = 'San Jose';"; - работает.

Но если передаю через html-форму из браузера:
$com = $_POST['com'];
print_r($com);
То в $com передается значение: $com == SELECT * FROM sal WHERE city = \'San Jose\';

Похоже, что из-за этих вот слэшей \'San Jose\' запрос не получается интерпретировать.

Как это обойти?
...
Рейтинг: 0 / 0
28.03.2014, 14:38:05
    #38599227
SharuPoNemnogu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с обработкой mysql-запроса PHP-скриптом
jmp,

откуда берутся слеши? Выложите кусок кода, где идет обработка переменной и выполнение запроса.
...
Рейтинг: 0 / 0
28.03.2014, 14:43:25
    #38599231
SharuPoNemnogu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с обработкой mysql-запроса PHP-скриптом
Смотрите в сторону magic_quotes

Ну или stripslashes() в помощь
...
Рейтинг: 0 / 0
28.03.2014, 14:56:09
    #38599242
jmp
jmp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с обработкой mysql-запроса PHP-скриптом
SharuPoNemnogu,
Я не знаю, почему они берутся. Они появляются тогда, когда я ввожу через в форму браузера IE9 запрос: SELECT * FROM sal WHERE city = 'San Jose';.
А через форму в Chrome/Firefox вообще ничего не обрабатывается.
Материалам, которые я использую, уже лет 6. Вот код php-скрипта.

<?php

mysql_error();
print_r($_POST);

//$com = "SELECT * FROM sal WHERE city = 'San Jose';";

$com = $_POST['com'];
print_r($com); //

$mysql_user = "root";
$conn = mysql_connect("localhost",
$mysql_user);
if (!$conn ) die ("Нет соединения с MySQL");


$database = "sample";
mysql_select_db($database)
or die ("Нельзя открыть $database");


$query = "$com";

$result = mysql_query($query)
or die ("<p>Ошибка: ".mysql_error());


if (eregi("^select(.*)", trim($com))||eregi("^desc(.*)", trim($com)))
{
$num_rows = mysql_num_rows($result);
// количество записей в запросе
//print "<P>В таблице содержится $num_rows строк";
$num_fields = mysql_num_fields($result);
// количество столбцов в запросе
print "<p><table border=1>\n";
print "<tr>\n";
for ($x=0; $x < $num_fields; $x++)
{
$name = mysql_field_name($result, $x);
print "\t<th>$name</th>\n";
// печатаем имя $x-того столбца
}
print "</tr>\n";
while ($a_row = mysql_fetch_row($result))
{ // печатаем содержимое столбцов
print "<tr>\n";
foreach ($a_row as $field) // $a_row - массив
print "\t<td>$field</td>\n";
print "</tr>\n";
}
print "</table>\n";
}
mysql_close($conn);
}
?>
...
Рейтинг: 0 / 0
28.03.2014, 15:37:19
    #38599304
SharuPoNemnogu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с обработкой mysql-запроса PHP-скриптом
jmp,

Код: sql
1.
$com = stripslashes($_POST['com']);
...
Рейтинг: 0 / 0
28.03.2014, 16:11:59
    #38599358
jmp
jmp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с обработкой mysql-запроса PHP-скриптом
SharuPoNemnogu,

о! вот теперь все о'кей! спасибо вам огромнейшее за помощь!
...
Рейтинг: 0 / 0
28.03.2014, 18:23:55
    #38599520
jmp
jmp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с обработкой mysql-запроса PHP-скриптом
SharuPoNemnogu,

еще вопрос, в IE9 работает, но вот интересно, почему в Chrome ничего не выводит?
...
Рейтинг: 0 / 0
28.03.2014, 23:53:16
    #38599660
SharuPoNemnogu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с обработкой mysql-запроса PHP-скриптом
jmp,

а что должно выводиться то? я же не вижу как ваша программа отрабатывает.

Да и судя по коду у вас в верстке каша полная. Зачем было использовать print, echo чем не устроил. И для чего там куча знаков табуляции, в html?
...
Рейтинг: 0 / 0
29.03.2014, 00:25:52
    #38599671
jmp
jmp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с обработкой mysql-запроса PHP-скриптом
SharuPoNemnogu,

код писал не я, а какой-то препод лет 6-7 назад. код учебный, написан для выполнения лабы по mysql. php я еще не изучал.
* не вижу, где вы разглядели знаки табуляции, весь код, что я привел, "приклеен к левой стенке".
* выводиться должна таблица



вот в Chrome это не выводится, а в IE - нет проблем.
...
Рейтинг: 0 / 0
29.03.2014, 00:28:11
    #38599672
jmp
jmp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с обработкой mysql-запроса PHP-скриптом
SharuPoNemnogu,

извиняюсь за масштаб. вот так лучше видно:
...
Рейтинг: 0 / 0
29.03.2014, 00:35:24
    #38599673
SharuPoNemnogu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с обработкой mysql-запроса PHP-скриптом
Ну вообще странно что в хроме и не вывелось, как раз всегда все наоборот). А консоль не на что не ругается?

Не получится, скиньте код и базу, гляну.
...
Рейтинг: 0 / 0
29.03.2014, 19:37:51
    #38599936
jmp
jmp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с обработкой mysql-запроса PHP-скриптом
SharuPoNemnogu,

прикрепляю файл.
* таблица строится в ins.php
* html-форма и php-скрипт сидят внутри command.php
...
Рейтинг: 0 / 0
29.03.2014, 19:38:33
    #38599937
jmp
jmp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с обработкой mysql-запроса PHP-скриптом
jmp,
...
Рейтинг: 0 / 0
29.03.2014, 22:13:43
    #38599983
SharuPoNemnogu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с обработкой mysql-запроса PHP-скриптом
jmp,
файл command.php
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
<!DOCTYPE HTML>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
	<title>Тест</title>
</head>

<body>

<form action=""  method="post">
	<br/>
    <textarea name="com" rows="5" cols="75"></textarea>
	<p><input type="SUBMIT" value="Выполнить" /></p>
</form>

<p><hr style="width: 100%; height: 1px; background: #000; border: none;" /></p>

<?php
	
	mysql_error();

	$com = stripslashes($_POST['com']);
	echo $com;
	
	
	if (empty($com)) {
	   echo 'Variable com is NULL!';
    }
	else {                

	   echo '<p><hr style="width: 100%; height: 1px; background: #000; border: none;" /></p>';
  
	   $conn = mysql_connect("localhost", "root") or die("Нет соединения с MySQL"); 

	   mysql_select_db("sample") or die ("Нельзя открыть $database");

	   $result = mysql_query($com) or die ("<p>Ошибка: ".mysql_error());

	/*вы уверены что это условие вам надо? Для чего оно вообще тут?
	if (eregi("^select(.*)", trim($com)) || eregi("^desc(.*)", trim($com)))
	{
		$num_rows = mysql_num_rows($result);
		// количество записей в запросе
		//print "<P>В таблице  содержится $num_rows строк";
		
		$num_fields = mysql_num_fields($result); 
		
		// количество столбцов в запросе
		print "<p><table border=1>\n"; 
		print "<tr>\n";
		
		for ($x=0; $x < $num_fields; $x++)
		{
			$name = mysql_field_name($result, $x); 
			print "\t<th>$name</th>\n";
			// печатаем имя $x-того столбца
		}
		
		print "</tr>\n";
			 
		while ($a_row = mysql_fetch_row($result))
		{      // печатаем содержимое столбцов
			print "<tr>\n";
			foreach ($a_row as $field)  // $a_row - массив
			print "\t<td>$field</td>\n"; 
			print "</tr>\n";
		}
		
		print "</table>\n"; 
		
	}*/
    
    echo '<table border="1" cellpadding="5" style="border-collapse: collapse;">';
    
    $printed_headers = false;
    while($row = mysql_fetch_assoc($result))
    {
        if (!$printed_headers) { 
        // Выводим строку с заголовками
            echo "<tr>"; 
            foreach ( array_keys($row) as $header ) 
            { 
                echo "<th>$header</th>"; 
            } 
        echo "</tr>"; 
        $printed_headers = true; 
        } 
 
        echo "<tr>";
        foreach ($row as $val)
        {
            echo "<td>$val</td>";
        }
        echo "</tr>";
    }
    echo '</table>';

	mysql_close($conn); 
	}
?>

</body>
</html>

...
Рейтинг: 0 / 0
31.03.2014, 17:16:10
    #38601146
jmp
jmp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с обработкой mysql-запроса PHP-скриптом
SharuPoNemnogu,

спасибо! вот теперь все работает и в Chrome!
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Проблемы с обработкой mysql-запроса PHP-скриптом / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]