Моя таблица в postgresql обрезает эти строки - PullRequest
1 голос
/ 13 мая 2011

У меня есть таблица в VMobjects, как это

MGRCONFIG_DB=# select * from vmobjects;
               guid                |   ipaddress   | username | password |  hostid  |     vmname      | guestostype | guestos
name
-----------------------------------+---------------+----------+----------+----------+-----------------+-------------+--------
-----
 7728235734dcd25700e7c02.96324791  | gsdag         | gsdasd   |          | Physical | rag             | windows     |
 3642656604dcd343d3bcd11.54875889  | fsd           |          |          | Physical | derde           | windows     |
 17714467484dcd35dd0fa677.27764184 | dsf           |          |          | Physical | fdsfd           | windows     |
 1837080764dcd362fafe404.83675706  | fgf           |          |          | Physical | fgf             | windows     |
 2791118544dcd363df11bf1.21924610  | fdghhg        |          |          | Physical | $%^             | windows     |
 7716352574dcd365c9eb777.30236042  | dsffd         |          |          | Physical | ^               | windows     |
 10753160514dcd366631f5b6.48505657 | gfdgd         |          |          | Physical | @               | windows     |
 8253046164dcd366f177bc3.85542378  | ghgfdhg       |          |          | Physical | @@@@@@@@@@@@@@  | windows     |
 9126180214dcd367a5b42e0.23605256  | fsdfdsfdsf    |          |          | Physical | fdsaj;(         | windows     |
 11086632854dcd36f62f7e79.14470771 | dfsdfsd       |          |          | Physical | ^               | windows     |

Теперь у меня есть php-страница addvm.php, когда я добавляю username/ip/password/ или что-то еще, оно усекается

gets truncated on entering data as '~!@#$%^&*()_+=-`{}|\][:"';<>?/.,' for all fields.

После использования pg_escape_string я могу вставить '~! @ # $% ^ () _ = - `{} |] [:"'; <>? /. все строки, кроме + и &. @ Emil Vikström: скажи, что я должен использовать urlencode для этого. но я не знаю, как и где это используется?

1 Ответ

3 голосов
/ 13 мая 2011

Используйте pg_escape_string для данных перед вводом их в ваш запрос SQL:

$data = '~!@#$%^&*()_+=-';
$data_escaped = pg_escape_string($data);
$query = 'INSERT INTO table (data) VALUES("'. $data_escaped .'");';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...