1

Тема: добавити запис в базу mysql

привіт, в мене наступна проблема... є такий запит:

if(isset($_GET['idTesting']))
{    
    $id = $_GET['idTesting'];
    echo $id;
    mysql_query("INSERT INTO question (`idTesting`, `description`, `one`, `two`, `three`, `four`, `score`,  `answerTrue`)
        VALUES('$id', '".$_GET['description']."', '".$_GET['one']."', '".$_GET['two']."', '".$_GET['three']."', '".$_GET['four']."', '".$_GET['score']."', '".$_GET['answerTrue']."')");
}

наче все працює, в базу все записується крім $id. $id успішно виводиться на сторінку. якщо $id замінити на цифру наприклад 2 то в базу воно запишеться, а $id не хоче... не розумію чому.

Post's attachments

8765.jpg 49.66 kb, 109 downloads since 2017-04-22 

Подякували: Monolith1

2

Re: добавити запис в базу mysql

зрозумів... змінна $_GET['idTesting'] коли присилалася була типу string, а в мене поле int

Подякували: Monolith1

3

Re: добавити запис в базу mysql

використовуйте mysqli_* замість застарілих mysql_*
http://replace.org.ua/post/93254/#p93254
скільки ж можна повторювати!!!

+ prepared statement, щоб проблем не було

https://blog.clever-games.win/
Це ще не кінець. Це навіть не початок кінця. Але, можливо, це кінець початку.
Зростання мудрості можна точно вимірювати ступенем зменшення злоби.
///// у творчій відпустці. не турбувати /////
Подякували: Kasper, ostap34PHP, Monolith3

4

Re: добавити запис в базу mysql

221VOLT написав:

використовуйте mysqli_* замість застарілих mysql_*
http://replace.org.ua/post/93254/#p93254
скільки ж можна повторювати!!!

+ prepared statement, щоб проблем не було

Але ж в Попова,Русакова курси по mysql :D  :) , а більшість новачків їх дивиться.....

"Борітеся – поборете, Вам Бог помагає!",
"Учітесь, читайте, І чужому научайтесь, Й свого не цурайтесь"  - Тарас Шевченко
"Лупайте сю скалу!" - Іван Франко

5

Re: добавити запис в базу mysql

ost.bregin2014 написав:
221VOLT написав:

використовуйте mysqli_* замість застарілих mysql_*
http://replace.org.ua/post/93254/#p93254
скільки ж можна повторювати!!!

+ prepared statement, щоб проблем не було

Але ж в Попова,Русакова курси по mysql :D  :) , а більшість новачків їх дивиться.....

В цьому проблема *FACEPALM*

"Борітеся – поборете, Вам Бог помагає!",
"Учітесь, читайте, І чужому научайтесь, Й свого не цурайтесь"  - Тарас Шевченко
"Лупайте сю скалу!" - Іван Франко

6

Re: добавити запис в базу mysql

ost.bregin2014 написав:
221VOLT написав:

використовуйте mysqli_* замість застарілих mysql_*
http://replace.org.ua/post/93254/#p93254
скільки ж можна повторювати!!!

+ prepared statement, щоб проблем не було

Але ж в Попова,Русакова курси по mysql :D  :) , а більшість новачків їх дивиться.....

І? Немає ніякої проблеми. Якщо курс 2005 року наприклад по якому я вчився - так. Але все інше...Ну блін. Людина не можна все відразу правильно зробити. Всі вчаться на помилках.

7

Re: добавити запис в базу mysql

російська, спеціально для поціновувачів древніх відеокурсів про ПХП

Когда умрет последний русский,
(увы, когда-то все умрут)
Закроется тюрьма народов,
Россию людям продадут.

И, видя мерзость запустенья,
Сын спросит своего отца:
Что тут за люди раньше жили
И чем прогневали творца?

Отец, который видел русских
Еще живых, вздохнет в ответ:
Бог дал им более, чем прочим,
Но главный не открыл секрет.

Какой секрет? Его ты знаешь?
Его все знали, кроме них.
Точнее, быстро забывали
До бед своих очередных...

Так в чем секрет?! Ну ладно, слушай,
И сам его не забывай!
Секрет простой - говна не кушай
И людям тоже не давай!

Сын, обалдев, шо, все так просто?!
Конечно, в том то и беда,
Простую истину бедняги
Не понимали никогда.

Говорила баба діду: «Я поїду к Білодіду, Ізучу двомовну мову І вернусь обратно знову». А дід бабі: «Не *изди, К Білодіду нєт їзди, — Туди не ходять поїзди»
Подякували: Monolith, 221VOLT2

8

Re: добавити запис в базу mysql

не розумію чому.

Якщо немає впевненості у тому що дані під запит по типу підходитимуть, то треба використовувати параметрізацію:

    if(isset($_GET['idTesting']))
    {    
        $sql="INSERT INTO question (`idTesting`, `description`, `one`, `two`, `three`, `four`, `score`,  `answerTrue`) VALUES(?,?,?,?,?,?,?,?)"
        $query = $mysqli->prepare($sql);
        $query ->bind_param("i", $_GET['idTesting']);
        $query ->bind_param("i", $_GET['description']);
        $query ->bind_param("s", $_GET['one']);
        $query ->bind_param("i", $_GET['two']);
        $query ->bind_param("i", $_GET['three']);
        $query ->bind_param("i", $_GET['four']);
        $query ->bind_param("i", $_GET['score']);
        $query ->bind_param("i", $_GET['answerTrue']);
        $query ->execute();
    }

У данному випадку перший параметер bind_param вказує на тип параметра.
Це надійнище ніж формування строкою, бо враховуе перетвореня типів.

Подякували: Monolith1

9

Re: добавити запис в базу mysql

misha_bondar_2012 написав:
ost.bregin2014 написав:
221VOLT написав:

використовуйте mysqli_* замість застарілих mysql_*
http://replace.org.ua/post/93254/#p93254
скільки ж можна повторювати!!!

+ prepared statement, щоб проблем не було

Але ж в Попова,Русакова курси по mysql :D  :) , а більшість новачків їх дивиться.....

І? Немає ніякої проблеми. Якщо курс 2005 року наприклад по якому я вчився - так. Але все інше...Ну блін. Людина не можна все відразу правильно зробити. Всі вчаться на помилках.

(Я теж) :)

"Борітеся – поборете, Вам Бог помагає!",
"Учітесь, читайте, І чужому научайтесь, Й свого не цурайтесь"  - Тарас Шевченко
"Лупайте сю скалу!" - Іван Франко

10

Re: добавити запис в базу mysql

0xDADA11C7 написав:
російська, спеціально для поціновувачів древніх відеокурсів про ПХП

Когда умрет последний русский,
(увы, когда-то все умрут)
Закроется тюрьма народов,
Россию людям продадут.

И, видя мерзость запустенья,
Сын спросит своего отца:
Что тут за люди раньше жили
И чем прогневали творца?

Отец, который видел русских
Еще живых, вздохнет в ответ:
Бог дал им более, чем прочим,
Но главный не открыл секрет.

Какой секрет? Его ты знаешь?
Его все знали, кроме них.
Точнее, быстро забывали
До бед своих очередных...

Так в чем секрет?! Ну ладно, слушай,
И сам его не забывай!
Секрет простой - говна не кушай
И людям тоже не давай!

Сын, обалдев, шо, все так просто?!
Конечно, в том то и беда,
Простую истину бедняги
Не понимали никогда.

доволі влучно, я зацінив
китайці, напевно, радіють - будуть території))

https://blog.clever-games.win/
Це ще не кінець. Це навіть не початок кінця. Але, можливо, це кінець початку.
Зростання мудрості можна точно вимірювати ступенем зменшення злоби.
///// у творчій відпустці. не турбувати /////

11

Re: добавити запис в базу mysql

221VOLT написав:

доволі влучно, я зацінив
китайці, напевно, радіють - будуть території))


Не думаю. Скоріше купка маріонеткових держав.