Warning: mysql_num_rows():
Pagina: « vorige 1 2 3 4 volgende »
Snap ik iets niet?
$sql = "
SELECT username
FROM " . SEC_TABLE_USERS . "
WHERE username='" . $username . "'";
Waarom mag dat zonder $ voor SEC_TABLE_USERS
@Klaasjan: omdat dat een constante is die met define aangemaakt is.
@Klaasjan: Omdat het met hoofdletters is geschreven, ga ik er even van uit dat het een constante is. Daar zet je geen $ voor.
Zie mijn vorige post in dit topic, SEC_TABLE_USERS is de tabelnaam, die was verkeerd verwerkt in de query, het zou zo moeten:
$sql = "
SELECT username
FROM SEC_TABLE_USERS WHERE username='" . $username . "'";
Code (php)
1
2
3
4
2
3
4
SELECT username FROM *.*_users WHERE username='*.*'
Notice: 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 '*.*users WHERE username='*.*'' at line 2 in /var/www/html/g_check.php on line 36
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /var/www/html/g_check.php on line 37
Notice: 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 '*.*users WHERE username='*.*'' at line 2 in /var/www/html/g_check.php on line 36
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /var/www/html/g_check.php on line 37
@Robert: nee, zo kan dat niet. Het is een constante, dus die moet je met de concatenate operator gebruiken.
Waarom kan ze dan wel zo een tabel aanmaken?
CREATE TABLE `SEC_TABLE_USERS` (
Zo gebruikt ze de constante toch niet goed dan?
Ik zie twee aannames dat het een Constante is en Robert is het met mij eens.
Maar ik denk dat het de bedoeling is zoals JAn en Frank zeggen alleen dat zie ik nergens terug DEFINE enz.
Oftewel is hij wel aangemaakt?
Frank:
Hmmm, het databasemodel is ook voor verbetering vatbaar. Lees eens een artikel over databasenormalisatie. Kolomnamen als extra_1, extra_2, etc. (dus genummerd, zelfde soort gegevens) duiden vrijwel zonder uitzondering op een fout datamodel. Deze gegevens horen in een aparte tabel te staan.
Ik mag een gegeven paard natuurlijk niet in zijn bek kijken. Ik heb dit script gekregen. Heb er zelf echt geen verstand van! Ben al blij dat ik het met jullie hulp een beetje duidelijk kan maken hier.
Ik neem aan dat je geen tabel in je db hebt die .*_users heet, dus daar zit de fout.
Wet van Murphy: Alles wat fout kan gaan, zal ook fout gaan.
Jan:
Ik neem aan dat je geen tabel in je db hebt die .*_users heet, dus daar zit de fout.
Nee, zoals ik al eerder schreef, staat daar een naam, die heb ik even weggehaald door *.*
Yvon:
Oké dan, met echo :-)
Code (php)
1
2
3
4
2
3
4
SELECT username FROM *.*_users WHERE username='*.*'
Notice: 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 '*.*users WHERE username='*.*'' at line 2 in /var/www/html/g_check.php on line 36
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /var/www/html/g_check.php on line 37
Notice: 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 '*.*users WHERE username='*.*'' at line 2 in /var/www/html/g_check.php on line 36
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /var/www/html/g_check.php on line 37
komt dit eruit als je
echo $sql; doet
Of heb je gegevens gebliebt? (*.*)
Als dat zo is vraag ik je om het eens zonder *.* te doen wat dat kan nou net de fout wegbliepen
Robert:
@Jan
Waarom kan ze dan wel zo een tabel aanmaken?
CREATE TABLE `SEC_TABLE_USERS` (
Zo gebruikt ze de constante toch niet goed dan?
Waarom kan ze dan wel zo een tabel aanmaken?
CREATE TABLE `SEC_TABLE_USERS` (
Zo gebruikt ze de constante toch niet goed dan?
Een constante in PHP werkt zoals een define in C. PHP vult voor die constante gewoon letterlijk in wat er gedefinieerd is. Tussen de backticks zal PHP dus gewoon de tabelnaam (in dit geval "users" denk ik) in vullen.
Yvon:
Nee, zoals ik al eerder schreef, staat daar een naam, die heb ik even weggehaald door *.*
En hoe moeten wij je dan nu helpen met debuggen? Nu wordt het een raadsel!Jan:
Ik neem aan dat je geen tabel in je db hebt die .*_users heet, dus daar zit de fout.
Nee, zoals ik al eerder schreef, staat daar een naam, die heb ik even weggehaald door *.*
Robert:
@Jan
Waarom kan ze dan wel zo een tabel aanmaken?
CREATE TABLE `SEC_TABLE_USERS` (
Zo gebruikt ze de constante toch niet goed dan?
Waarom kan ze dan wel zo een tabel aanmaken?
CREATE TABLE `SEC_TABLE_USERS` (
Zo gebruikt ze de constante toch niet goed dan?
Hoe moet/kan ik het dan wel goed doen?
dat was een foutje van mij.. Loop een beetje achter met het werken met constanten.. (gebruik ik zelf bijna nooit)
Ga er voor het gemak maar vanuit dat dat niet is gezegd.
Code (php)
1
2
3
4
2
3
4
SELECT username FROM in-actie_users WHERE username='gerda'
Notice: 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 'in-actie_users WHERE username='gerda'' at line 2 in /var/www/html/g_check.php on line 36
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /var/www/html/g_check.php on line 37
Notice: 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 'in-actie_users WHERE username='gerda'' at line 2 in /var/www/html/g_check.php on line 36
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /var/www/html/g_check.php on line 37
Ik wens je veel sterkte met dit probleem Yvon. Morgen kijk ik wel weer eens of het opgelost is ;-)
Oh ik lees je laatste post nog even: ik weet niet of dat minteken in je tabelnaam wel toegestaan is.