Skocz do zawartości
"Idzie nowe..." - o zmianach i nie tylko ×
Przeniesienie zakupów z IPS Marketplace / Moving bought items from IPS Marketplace ×

Zapytanie UPDATE w aplikacji.


Rekomendowane odpowiedzi

Opublikowano

Witam,

Mam takie oto zapytanie w aplikacji:

IPS\Db::i()->update( 'core_members', array( 'tekst' => $values[ 'tekst2' ] ), array('member_id' => $values[ 'member_id' ] ) );

Wszystko jest dobrze, ale mam problem z dodaniem member_id. Chcę, aby to zapytanie zmieniało tylko użytkownikowi, który ma takie samo ID jak wpisane w polu tekstowym w formularzu, który ja zrobiłem. Mógłby ktoś poprawić to zapytanie tak, aby było poprawne w 100%? Bo teraz, gdy wyślę formularz zmienia każdemu użytkownikowi pole w bazie danych, a nie tylko temu o ID = ID.

  • Manager
Opublikowano

Tak spróbuj:

$member = \IPS\Member::load( $values[ 'member_id' ] );
$member->tekst = $values['tekst2'];
$member->save();

 

A na przyszłość:

	/**
	 * Run UPDATE statement and return number of affected rows
	 *
	 * @see		<a href='http://dev.mysql.com/doc/refman/5.1/en/update.html'>UPDATE Syntax</a>
	 * @param	string|array	$table		Table Name, or array( Table Name => Identifier )
	 * @param	string|array	$set		Values to set (keys should be the table columns) or pre-formatted SET clause or \IPS\Db\Select object
	 * @param	mixed			$where		WHERE clause (see \IPS\Db::compileWhereClause for details)
	 * @param	array			$joins		Tables to join
	 * @param	int|array|null	$limit		LIMIT clause (see \IPS\Db::select for details)
	 * @param	int				$flags		Bitwise flags
	 *	@li	\IPS\Db::LOW_PRIORITY			Will use LOW_PRIORITY
	 *	@li	\IPS\Db::IGNORE					Will use IGNORE
	 * @return	int
	 * @throws	\IPS\Db\Exception
	 */
	public function update( $table, $set, $where='', $joins=array(), $limit=NULL, $flags=0 )
	{

 

intermedia - profesjonalne rozwiązania Invision Power Board

---

Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.

Opublikowano (edytowane)

@DawPi moje zapytanie jest dobre, tylko chodzi mi o to, aby działało tylko na użytkownikowi o ID wpisanym w formularzu np. ID 4 ( i to 4 to jest tylko cyfra, nie jest podpisane do niczego ), lecz zapytanie te działa u każdego użytkownika, tak jakby nie widziało tego WHERE.

Edytowane przez inzonek
Opublikowano
IPS\Db::i()->update( 'core_members', array( 'tekst' => $values[ 'tekst2' ] ), array('member_id=?', $values[ 'member_id' ] ) );

 

  • Lubię to 1
Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę.