קוד mysql שעובד ב-phpmyadmin אבל לא ב-php

lioryyy1

New member
קוד mysql שעובד ב-phpmyadmin אבל לא ב-php

היי, אני מנסה להריץ שאילתת mysql דרך php אבל מקבל הודעת שגיאה:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'UPDATE movies SET rank = (@p:=@p+1) ORDER BY value DESC' at line 1


כאשר אני מנסה להריץ את השאילת הבאה:

SET @p=0; UPDATE cms_module_movies_movie SET rank = (@p:=@p+1) ORDER BY stock_value DESC


דרך אגב, כאשר אני מנסה להריץ את השאילתה דרך ה-phpmyadmin, השאילתה עובדת!

תודה לעוזרים.
 

lioryyy1

New member
תיקון קטן

השם של המסד והשדה שונים בדומאות...אבל תניחו שעשיתי אותם זהים כמובן.
פשוט א"א לערוך כאן הודעה.
 

fat fish

New member
למה ככה?

בוודאי שאפשר להשתמש במשתני sql - זה לא פשוט, כי לא ניתן לשמור על המשתנים הללו בין שאילתות שונות. אבל זה לא בלתי אפשרי :)
 

N i X

New member
ככה

dbh מופע של pdo

$dbh->beginTransaction();

/* Change the database schema and data */
$sth = $dbh->exec("SET @p=0");
$sth = $dbh->exec("UPDATE Movies SET Rank = (@p:=@p+1) ORDER BY Id DESC");
$res = $dbh->commit();

echo $res;
 

lioryyy1

New member
תודה

לא חשבתי שצריך להפריד בין השאילתות,
חשבתי שאם אני אגדיר את P בשאילתה שונה הוא לא יחושב בשאילתה השנייה.
תודה רבה!
 
למעלה