LINUX.ORG.RU

Помогите с sql-запросом в скрипте (Проблема с кавычками)


0

1

Есть запрос :

SELECT * FROM users WHERE mid=0 and state=«on»

Есть Перл скрипт в который его нужно вставить в таком виде:

$sql=«SELECT * FROM users WHERE mid=0 and state=„on“»;

Смущает : «on»"

Пробовал сделать запрос в одинарных кавычках в phpmyadmin: SELECT * FROM users WHERE mid=0 and state=`on`

Но он ругаеться : [21:54:19] klu4ik: #1054 - Unknown column 'on' in 'where clause'

Подскажите пожалуйста пути решения этой проблемки:)


Одинарные кавычки в SQL 'такие'.

Другие варианты могут обозназначать имя поля - нужны когда имя поля равно зарезервированому слову (select * from «where» where «order»=123).

andrewzvn
()

$sql=«SELECT * FROM users WHERE mid=0 and state=\„on\“»; ?

anonymous
()

ещё вариант $sql=q[SELECT * FROM users WHERE mid=0 and state=«on»];

anonymous
()
Ответ на: комментарий от andrewzvn

спасибо , действительно кавычки не правильные поставил.

klu41k
() автор топика

Use placeholders, Luke!

my $query = "SELECT * FROM users WHERE mid = ? and state = ?";
my $sth = $dbh->prepare($query);
$sth->execute(0, 'on');

while (my $row = $sth->fetchrow_hashref()) {
...
}

Иначе запаришься потом ошибки искать и исправлять. И вообще, прими это за правило.

kovrik ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.