j4nk3y: MySQL data type

Beitrag lesen

Hey,

So mal ein wenig gearbeitet und es tritt das erste Problem auf, welches ich zwar verstehe aber keine Möglichkeit sehe, dies zu beheben.

Ich hab jetzt folgendes Statment:

$get_data = $db->prepare(sprintf(
	"Select 
		%1$s.sid, %1$s.x, %1$s.y, %1$s.z,
		%2$s.pid, %2$s.ppos, %2$s.pclass,
		%3$s.h, %3$s.he, %3$s.c, %3$s.n, %3$s.o, %3$s.si, %3$s.ti, %3$s.fe,
		%4$s.mid, %4$s.mpos, %4$s.mclass,
		%5$s.h, %5$s.he, %5$s.c, %5$s.n, %5$s.o, %5$s.si, %5$s.ti, %5$s.fe
	From %1$s
	Left JOIN %2$s ON %1$s.sid = %2$s.sid
	Left JOIN %3$s ON %1$s.sid = %3$s.sid
	Left JOIN %4$s ON %2$s.pid = %4$s.pid
	Left JOIN %5$s ON %2$s.pid = %5$s.pid
	", mysqli_real_escape_string($db, $_SESSION['gid']."_s"), 
         mysqli_real_escape_string($db, $_SESSION['gid']."_pinfo"), 
         mysqli_real_escape_string($db, $_SESSION['gid']."_presource"),
         mysqli_real_escape_string($db, $_SESSION['gid']."_minfo"), 
         mysqli_real_escape_string($db, $_SESSION['gid']."_mresource")));
	$get_data->execute();
	$result = $get_data->get_result();
	$data['gdata']['s'] = $result->fetch_assoc();

Dazu nochmal kurz dargestellt wie die Tabellen aussehen:

s:

| sid | x | y | z |
| 1 | 2 | 4 | 2 |
| 2 | 4 | 5 | 1 |

pinfo:

| pid | sid |...
| 1 | 2 |...
| ... | ... |...

presource:

| pid | sid |...
| 1 | 2 |...
| ... | ... |...

mresource:

| mid | pid |...
| 1 | 2 |...
| ... | ... |...

mresource:

| mid | pid |...
| 1 | 2 |...
| ... | ... |...

Logischerweise, meckert PHP bei der Verknüpfung $s.* und sagt das er die Variable nicht kennt.

Und ich erhalte Fatal error: Call to a member function execute() on a non-object in W:\htdocs\html\... on line 2738. Und zu allem überfluss bekomme ich auch noch Warning: sprintf(): Too few arguments in W:\htdocs\html\... on line 2738.
Also grad etwas zum Haare raufen aber was mach ich nur falsch?

Gruß
Jo