mysql_real_escape_string в PHP CLI - PullRequest
       12

mysql_real_escape_string в PHP CLI

0 голосов
/ 21 декабря 2011

У меня есть сценарий, который я хочу cron запланирован. Все хорошо и прекрасно, когда я тестировал в браузере, работает как надо, но при запуске из php cli (php cron.php) mysql_real_escape_string теряет данное значение.

Есть идеи почему?

ОБНОВЛЕНО кодом и подключением, установленным до mysql_real_escape_string (но все еще не работающим)

$dbh = new PDO("mysql:host=localhost;dbname=xxx", 'xxx', 'xxx');  
foreach ($prosArr[$i] as $val => $key) {
    $fieldsStr  .= "`".trim($val). '` , ';
    $fieldVal   .= '"'.mysql_real_escape_string($key). '" , ';
}

Вот вывод print_r из $ prosArr [$ i], полученный прямо из того же сценария CLI

Array
(
    [ProductCode] => 10077
    [BranchCode] => 100
    [RetailPrice] => 499.0000
    [PromotionPrice] => 0.0000
    [FullPrice] => 499.0000
)

Ответы [ 2 ]

0 голосов
/ 21 декабря 2011

Чтобы использовать mysql_real_escape_string, сначала необходимо подключиться к MySQL.

В документации в разделе заметок

Требуется соединение MySQL перед использованием mysql_real_escape_string (), в противном случае генерируется ошибка уровня E_WARNING и возвращается FALSE.Если link_identifier не определен, используется последнее соединение MySQL.


РЕДАКТИРОВАТЬ: Вы должны использовать подготовленный оператор и не смешивать mysql и PDO API

0 голосов
/ 21 декабря 2011

Не используйте mysql_real_escape_string() с PDO.Они представляют собой разные библиотеки и не предназначены для использования друг с другом.

Используйте взамен PDO::Quote или параметризованные запросы.

...