Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / добавление php когда в базу mysql / 3 сообщений из 3, страница 1 из 1
17.07.2012, 20:13:29
    #37882813
Staslol
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
добавление php когда в базу mysql
Здравствуйте. Я хочу хранить некоторую часть моего кода в базе (удобно так). вот ака я это сделал:
есть форма:
Код: html
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.
<h3>Добавить событие</h3>

<form action="sql/cron_add_sql.php" method="post" name="test_form">
<table border="1" cellpadding="0" cellspacing="0">
 <tr>
  <td colspan="2" align="center"><strong>Введите необходимую информацию</strong></td>
 </tr>
 <tr>
  <td width="150">название выполняемого скрипта :</td>
  <td><input type="text" name="name" maxlength="30" /></td>
 </tr>
 
 <tr>
  <td width="150">Когда выполняется :</td>
	<td><select name="cron" size="1">
		<option value="min">раз в минуту</option>;
		<option value="min">раз в час</option>;
		<option value="min">раз в день</option>;
		<option value="min">раз в неделю</option>;
		<option value="min">раз в месяц</option>;
	</select></td>
 </tr>
 

 <tr>
  <td width="150">php скрипт:</td>
  <td><textarea type="text" name="src" cols= "40" rows="5"></textarea></td>
 </tr>

 <tr>
 <td width="150">включен :</td>
 <td>
 <input type="radio" name="enable" value="yes" checked="checked" /> да

 <input type="radio" name="enable" value="no" /> нет

 </td>
 </tr>
 
 <tr>
  <td colspan="2" align="center">
   <input type="submit" class="buttons" value="Добавить" />
   <input type="reset" class="buttons" value="Очистить" />
  </td>
 </tr>
</table>
</form>



которая потом передает обработчику параметры через POST:
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
require_once("db.php");
$xtable = "cron";
$query = "INSERT INTO $xtable SET name='".$_POST['name']."',src='".$_POST['src']."',cron_t='".$_POST['cron']."',enable='".$_POST['enable']."'";
$db->sql($query); 
mysql_close();


echo ("<div style=\"text-align: center; margin-top: 10px;\">
<font color=\"green\">Данные успешно сохранены!</font>
 
<a href=../index.php>Вернуться назад</a></div>");



класс db.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.
<?php

        require_once "config.php";

        class db extends config
        {

                private $connection;

                function __construct()
                {
                        $this->open_connection();
                        echo "connection set\n";
                }

                private function open_connection()
                {
                         $this->connection = mysql_connect($this->DB_HOST,$this->DB_USER,$this->DB_PASS);
                         if(!$this->connection)
                                {
                                        die("Database connection faild: ");
                                }
                                else
                                {
                                        $db_select = mysql_select_db($this->DB_NAME);
                                }
                                mysql_query("set names utf8") or die("set names utf8 failed");
                }

                public function sql($query)
                {
                        $result= mysql_query($query,$this->connection);
                        if(!$result)
                        {
                                die("!!!!!Database query failed: ".mysql_error());
                        }
                        return $result;
                }


        }

$db= new db();
?>



проблема в следующем...
Когда я с помощью этой формы пытаюсь записать следующий код в базу:
Код: 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.
require_once("/etc/sh/sh.php");
require_once("/etc/sh/db.php");
$query="SELECT dev_id, dev_name FROM dev WHERE dev_type='temp'";
$dbxx=new db();
$result=$dbxx->sql($query);
$res=array();

$com="ls -1 ".$wpath;
$dev=array();
$dev=exec($com);
$n=0;
$n=count($dev);
while($res=mysql_fetch_array($result,MYSQL_ASSOC))
{
        $com="ls -1 ".$wpath." | grep ".$res['dev_name'];
        $c=exec($com);
        if($c!="")
        {
                $com="cat ".$wpath."/".$res['dev_name']."/temperature";
                $t=exec($com);
                $mysqldate = date('Y-m-d H:i:s');
        }
        $dbx=new db();
        $query="INSERT INTO temp SET dev_id='".$res['dev_id']."',temp='".$t."',date='".$mysqldate."'";
//      echo $res['dev_id']."  ".$t."  ".$mysqldate;
        $dbx->sql($query);
}


вылазит следующая ошибка:
Код: html
1.
Database query failed: 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 'temp'"; $dbxx=new db(); $result=$dbxx->sql($query); $res=array(); $com="ls' at line 1



Подскажите, пожалуйста, как решить данную проблему?
...
Рейтинг: 0 / 0
17.07.2012, 20:18:12
    #37882817
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
добавление php когда в базу mysql
Сделайте вывод переменной $query перед выполнением запроса.
...
Рейтинг: 0 / 0
17.07.2012, 20:25:09
    #37882824
Staslol
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
добавление php когда в базу mysql
miksoft,

только что нашел решение. Экранировать переменные, используя функцию mysql_real_escape_string
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / добавление php когда в базу mysql / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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