Вопрос касательно синтаксиса php client-> call с использованием службы soap - PullRequest
2 голосов
/ 26 мая 2010

Итак, я работаю над сайтом для работы, которую я «унаследовал», когда начинал здесь, и мне приходится пролистывать много кода, который мне незнаком, а именно мыльные сервисы. На сайте есть функция, которая позволяет вам записывать некоторые вещи в базу данных с помощью сервиса createURL:

$res = $db->Exec('INSERT INTO private_urls (UID, psswrd, profile_id, show_profile, show_portfolio, show_resume, show_message, show_email, show_phone, show_eportfolioaddress, show_major, show_minor, show_academic_interests, show_research_interests, show_career_interests, show_job_interests, created, modified, urlName) VALUES ( ? , ? , ? , ? , ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, NOW(), NOW(), ?)', 'sssssssssssssssss', $uid, $password, $profile_id, $profile, $portfolio, $resume, $messages, $email, $phone, $eportAddress, $major, $minor, $academicInterests, $careerInterests, $researchInterests, $jobInterests, $urlName); 

Теперь моя работа состоит в том, чтобы сделать так, чтобы я мог редактировать эту запись базы данных, а не иметь дублирующуюся запись (с чем я сталкиваюсь). Я создал новые формы и связанные php-файлы, которые ссылаются на сервис editURL, который я создал, аналогично созданию.

МОЙ ВОПРОС: Относится к синтаксису редактирования этого оператора sql, чтобы он обновлял базу данных со всеми этими значениями, которым он был передан WHERE private_urls.uid = ?. Я не могу понять, как синтаксис должен идти с предложением WHERE. Вот что у меня есть:

$res = $db->Exec('UPDATE private_urls (UID, psswrd, profile_id, show_profile, show_portfolio, show_resume, show_message, show_email, show_phone, show_eportfolioaddress, show_major, show_minor, show_academic_interests, show_research_interests, show_career_interests, show_job_interests, created, modified, urlName) WHERE private_urls.UID = ? VALUES ( ? , ? , ? , ? , ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, NOW(), NOW(), ?)', 'ssssssssssssssssss', $uid, $uid, $password, $profile_id, $profile, $portfolio, $resume, $messages, $email, $phone, $eportAddress, $major, $minor, $academicInterests, $careerInterests, $researchInterests, $jobInterests, $urlName); 

Это, очевидно, не работает правильно, и мне интересно, если мой? после предложения WHERE неправильно ассоциируется с первой из дублированных переменных $ uid ...

Есть мысли?

1 Ответ

0 голосов
/ 26 мая 2010

Ваш ОБНОВЛЕНИЕ синтаксис неправильный, вы хотите что-то вроде этого (упрощено для краткости)

$res = $db->Exec('UPDATE private_urls '.
    'SET psswrd=?, profile_id=?,modified=NOW() '.
    'WHERE UID=?', 
    $password, $profile_id, $uid);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...