Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Помогите, пожалуйста не сойти с ума
Форумы портала PHP.SU » » Вопросы новичков » Помогите, пожалуйста не сойти с ума

Страниц (1): [1]
 

1. Ororo - 19 Октября, 2015 - 16:51:34 - перейти к сообщению
Бьюсь уже день почти, никак не пойму, где я что упустил. Пишу в базу данные при помощи этого замечательного класса, много раз уже им пользовался, на локалхосте (ноутбуке) все работает, на сервере - нет. А хочется писать именно на сервер.

Проверял 100 раз: пароли, привилегии пользователя, структуру таблицы, но все равно получаю: Error: wrong query. Что это блин такое-то? Даже в google нету таких вопросов.

Вот такой код примерно:

PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $database_name = 'ads';
  4. $username = 'user';
  5. $password = 'password';
  6. $host = 'localhost';
  7.  
  8. require('db.php');
  9.  
  10. $db = new db($database_name, $username, $password, $host); // $host is optional and defaults to 'localhost'
  11.  
  12. mysql_query('SET NAMES utf8');
  13.  
  14. $title = 'title2';
  15. $description = 'desc11';
  16. $thumbnail = '2.jpg';
  17. $price = '$2.2';
  18. $link = 'http://google.com';
  19. $shop_logo = 'logo.jpg';
  20. $image_time = '2015-06-23 12:00:29';
  21. $image_link = 'bla.jpg';
  22.  
  23.  
  24.  $db->insert(
  25.     'ads',
  26.     array(
  27.         'product_name' => $title,
  28.         'product_description' => $description,
  29.         'product_price' => $price,  //это цена
  30.         'affiliate_link' => $link,
  31.                 'shop_logo' => $shop_logo,
  32.                 'thumbnail' => $thumbnail,
  33.                 'image_time' => $image_time,
  34.                 'image_link' => $image_link
  35.                 )
  36. );
  37.  
  38.  
  39. ?>
  40.  


Да, mysql лог пустой. Не включил я его чтоли?
2. DeepVarvar - 19 Октября, 2015 - 17:55:27 - перейти к сообщению
Ororo пишет:
замечательного класса
Какая самоирония ))
mysql_* устарело, а в зависимости от версии пхп еще и, возможно, уже выкинуто полность.
Ну и да, как насчет врубить уровень ошибок на полную катушку?
3. Ororo - 19 Октября, 2015 - 18:37:01 - перейти к сообщению
DeepVarvar пишет:
Ororo пишет:
замечательного класса
Какая самоирония ))
mysql_* устарело, а в зависимости от версии пхп еще и, возможно, уже выкинуто полность.
Ну и да, как насчет врубить уровень ошибок на полную катушку?


Уровень ошибок php? mysql? Сделал по этой инструкции, вообще mysql перестал стартовать Недовольство, огорчение

DeepVarvar пишет:

mysql_* устарело, а в зависимости от версии пхп еще и, возможно, уже выкинуто полность.


Имеем:

PHP Version 5.4.44-1~dotdeb+7.1
Apache/2.2.22 (Debian)
apc включен
mysql/mysqli Client API version 5.5.41

Если они устарели, то что актуально использовать сейчас? Мне Б простой класс или обертку - сунуть 6 полей в табличку. Бреед, ну какой пипец
4. Panoptik - 20 Октября, 2015 - 14:10:14 - перейти к сообщению
замечательный класс это PDO
а ваш класс - костыль из говна и палок

садись 2. переделывай
5. andrewkard - 20 Октября, 2015 - 14:47:21 - перейти к сообщению
Ororo
Подключите в php.ini PDO и например так:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
  3. $stmt = $dbh->prepare("INSERT INTO REGISTRY (name, value) VALUES (:name, :value)");
  4. $stmt->bindParam(':name', $name);
  5. $stmt->bindParam(':value', $value);
  6.  
  7. // вставим одну строку
  8. $name = 'one';
  9. $value = 1;
  10. $stmt->execute();
  11.  
6. DeepVarvar - 20 Октября, 2015 - 21:08:53 - перейти к сообщению
andrewkard пишет:
bindParam
Ненавижу биндохрень.
Она между прочим похожа на ненавистный всеми вами goto.
Сам предпочитаю так:
PHP:
скопировать код в буфер обмена
  1. $stmt->execute([':name' => 'one', ':value' => 1]);
7. Ororo - 21 Октября, 2015 - 21:41:39 - перейти к сообщению
Попробовал PDO-вариант, результат тот же:

[img]https://gyazo.com/f23eaf23e7fc920e316844bda2dad994.png[/img]

Где косяк, никак не пойму. Что-то с базой не так?

И главное в гугле ничего нет
(Добавление)
Это код из скрипта, который является "обвесом" для базы:

PHP:
скопировать код в буфер обмена
  1. //Validate arguments.
  2.   if (!ctype_digit($number)) {
  3.     header("HTTP/1.0 400 Bad Request");
  4.     die('Error: wrong query.');


Поясните мне, пожалуйста. Я не могу писать в базу, т.к. она сообщается со скриптом что ли. Как это вообще возможно. Скрипт этот потом работает с базой, берет данные оттуда, но почему я не могу туда писать?
8. andrewkard - 21 Октября, 2015 - 23:04:59 - перейти к сообщению
Ororo
а что тут: $number ?

 

Powered by ExBB FM 1.0 RC1