SQL sözdizimi hatası - PHP / MySQL

4 Cevap php

Herkes burada neler söyleyebilirsin. Bu kod çalışma ve aşağıdaki hata atma değil neden ben emin değilim:

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 'AND role != 7 AND role != 4' at line 3

    $sql = 'SELECT * FROM tblusers
				 INNER JOIN permissions on tblusers.usrID = permissions.user_id
				 WHERE permissions.team_id='.$team_id.' AND role != 7 AND role != 4';

	require("connection.php");

	$result = mysql_db_query($DBname,$sql,$link) or die(mysql_error()); 

	while($row = mysql_fetch_assoc($result))
	{
      $message->addTo($row['usrEmail'], $row['usrFirst'] . ' ' . $row['usrLast']);
    }

Ben onu "echo", eğer iyi çalışır çünkü, değişken $ team_id yolunda olduğunu biliyoruz. Ben burada yanlış yapıyorum üzerinde herhangi bir fikir? Teşekkürler!

4 Cevap

$sql, böylece biz onu debug veritabanında deyimi deneyin ya da buraya yapıştırın echo. Ben başlangıçta değişken tırnak ihtiyacı olduğunu şüpheli ama muhtemelen onun bir dizi beri yok.

Hem tablolar row sütun veya sadece tek bir tablo o var var mı?

Alıyorum o kesin bir hata iletisi {[(0)}] boşsa - Eğer kod bu noktada ayarlanır emin misin?

Ile prepared statements Eğer tırnak sorunları önleyebilirsiniz.

$dbConn = new mysqli("127.0.0.1", "username", "password", "db");
$stm = $dbConn->prepare("SELECT * FROM tblusers WHERE team_id = ?");
$stm->bind_param("i", $team_id); /* 'i' for an integer */
$stm->execute();

rol alan belirsiz deneyin tblusers.role olduğunu