Как можно вставить в базу mysql строка, содержащая символ *


Я использую PHP и Mysql, и я пытаюсь добавить поле " КОД радио тип NEXTEL и ЯСНО:

23*4567

Только, что, когда я проверяю то, что было вставлено, я вижу, что только записал то, что до *, становится так:

23

с Помощью query нормально так:

INSERT INTO tabela (id_radio) VALUES ("23*4567")

я пытался использовать функции, но ничего не получалось.

addslashes()
mysql_real_scape_string()

) необходима некоторая функция, чтобы * было принято на mysql?

 2
Author: Heavypipo, 2014-03-06

4 answers

Просто поменять тип поля varchar и как вставить строку в поле.

 2
Author: user5988, 2014-03-06 22:00:20

, Если вы используете query с параметрами банк будет возможность вставить специальные символы без проблем. Только нужно бежать значения, если вы создаете запрос в руке, с литералами фиксированные.

//$dbh é a sua conexão com o BD.
$stmt = $dbh->prepare("INSERT INTO tabela (id_radio) VALUES (?)");
$stmt->execute(array("23*4567"))
 1
Author: hugomg, 2014-03-06 21:14:47

, Если поле, которому принадлежит номер (радио, for цифры(int, float, numeric) переводите он varchar, это также избавляет вас от какой-то номер, который начинается с нуля, так как они удаляются, когда они находятся слева.

Код для alter колонного типа, это:

ALTER TABLE tabela MODIFY  campo varchar(50)

Сделала тест, создайте таблицу с двумя столбцами, и я запустил эту insert прямой в базе

INSERT INTO radios(radio_int, radio_varchar) values(23*4567, '23*4567')

Результат был

radio_int: 105041
radio_varchar: 23*4567
 1
Author: rray, 2014-03-06 21:47:36

Попробуйте отправить char, char *, а не символ сам по себе, например:

INSERT INTO tabela (id_radio) VALUES ("23".CHAR(42)."4567")
 0
Author: Silvio Andorinha, 2014-03-06 21:05:55