Sql sorgu yürütme sorunu yaşıyorsunuz

3 Cevap php

Ben sql sorgusu execution.I bir sorun bu sql sorgusu kullanıyorum var:

$userid = 1;  

$sql = mysql_query("
  SELECT ID, Nm, Address, date_format(DateOfBirth, '%d%M%Y') as DateOfBirth 
  FROM PersonalDetails where UserMasterID = $userid
") or die (mysql_error());

: Sonuç olarak görünür

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 '= ' at line 1

When I execute this in PHPMyAdmin it works properly. I am using mysql(5.0.5b) and PHP (5.2.6)

Bana yardım eder misiniz?

3 Cevap

UserMasterID bir tamsayı değilse, size değer tırnak koymak gerekebilir:

PersonalDetails where UserMasterID = '$userid'"

The query you are quoting above is not identical to what you run in phpMyAdmin. It contains a PHP variable. When in SQL trouble, always output and analyze the parsed query (with no references to PHP variables in them).

$query = "select ID... etc. etc.";
$result = mysql_query($query);

if (!$result) 
 echo "Error in query $query: ".mysql_error();

Sorunların% 90 lekeli ve bu şekilde çözülebilir.

Ama değil PHP kodu, phpMyAdmin düzgün çalışıyorsa, o PHPMyAdmin o muhtemelen geleni kaçan ve sanitasyon ünlü görev performans olduğunu bana söylüyor.

Bu kodunuzu değiştirin ve kontrol edin.

$userid = 1;  

$sql = mysql_query("
  SELECT `ID`, `Nm`, `Address`, date_format(`DateOfBirth`, '%d%M%Y') as DateOfBirth 
  FROM `PersonalDetails` where `UserMasterID` = '{$userid}'
") or die (mysql_error());

Şimdi çalışmalıdır.

Ehhh - Neden birleştirmek değil mi?

"SELECT `ID`, `Nm`, `Address`, date_format(`DateOfBirth`, '%d%M%Y') as DateOfBirth 
FROM `PersonalDetails` where `UserMasterID` = '" . $userid . "'";

ama Joseph nokta üzerinde ...