Probleem met een entry..
Toen ik mijn MyBB 1.6x board naar SMF2.0 wilde converten, kreeg ik deze error.
Wat moet ik hiermee?
Converting...
Converting members... Unsuccessful!
This query:
if(!preg_match('/\d{4}-\d{2}-\d{2}/', $row['birthdate']))
$row['birthdate'] = '0001-01-01';
Caused the error:
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 'if(!preg_match('/\d{4}-\d{2}-\d{2}/', $row['birthdate']))
$row['birthdate'] = '' at line 1
Volgens de error staat die if() regel midden in de query.
En hoe is dit dan op te lossen, of moeten jullie de complete sourcecode daar voor hebben?
Niet compleet. Alleen het stukje rond die query.
die if hoort denk ik niet in de query.
Waarmee ben je MyBB 1.6x board naar SMF2.0 aan het converteren? Is dat meegeleverde code of heb je zelf iets geschreven? Als het meegeleverde code is dan kan je misschien bij de bron cq de makers wat navragen?
Ik kan eventueel de complete .sql file posten, of de download posten, als iemand even voor mij wil kijken :)
Djurre Visser op 14/09/2011 11:15:23:
Ik kan eventueel de complete .sql file posten..
Liever de relevante delen.
Gewijzigd op 14/09/2011 11:19:38 door - Ariën -
Eens even kijken welke dingen ik dan moet posten, geef me een minuutje.
EDIT:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
/* fix invalid birthdates */
if(!preg_match('/\d{4}-\d{2}-\d{2}/', $row['birthdate']))
$row['birthdate'] = '0001-01-01';
__
---* {$to_prefix}members
SELECT
uid AS id_member, SUBSTRING(username, 1, 255) AS member_name,
SUBSTRING(username, 1, 255) AS real_name, email AS email_address,
SUBSTRING(password, 1, 64) AS passwd, SUBSTRING(salt, 1, 8) AS password_salt,
postnum AS posts, SUBSTRING(usertitle, 1, 255) AS usertitle,
lastvisit AS last_login, IF(usergroup = 4, 1, 0) AS id_group,
regdate AS date_registered, SUBSTRING(website, 1, 255) AS website_url,
SUBSTRING(website, 1, 255) AS website_title,
SUBSTRING(icq, 1, 255) AS icq, SUBSTRING(aim, 1, 16) AS aim,
SUBSTRING(yahoo, 1, 32) AS yim, SUBSTRING(msn, 1, 255) AS msn,
SUBSTRING(signature, 1, 65534) AS signature, hideemail AS hide_email,
SUBSTRING(buddylist, 1, 255) AS buddy_list,
SUBSTRING(regip, 1, 255) AS member_ip, SUBSTRING(regip, 1, 255) AS member_ip2,
SUBSTRING(ignorelist, 1, 255) AS pm_ignore_list,
timeonline AS total_time_logged_in,
CASE
WHEN birthday = '' THEN '0001-01-01'
ELSE CONCAT_WS('-', RIGHT(birthday, 4), SUBSTRING(birthday, LOCATE('-', birthday) + 1, LOCATE('-', birthday, LOCATE('-', birthday) + 1) - LOCATE('-', birthday) - 1), LEFT(birthday, LOCATE('-', birthday) - 1))
END AS birthdate
FROM {$from_prefix}users;
---*
if(!preg_match('/\d{4}-\d{2}-\d{2}/', $row['birthdate']))
$row['birthdate'] = '0001-01-01';
__
---* {$to_prefix}members
SELECT
uid AS id_member, SUBSTRING(username, 1, 255) AS member_name,
SUBSTRING(username, 1, 255) AS real_name, email AS email_address,
SUBSTRING(password, 1, 64) AS passwd, SUBSTRING(salt, 1, 8) AS password_salt,
postnum AS posts, SUBSTRING(usertitle, 1, 255) AS usertitle,
lastvisit AS last_login, IF(usergroup = 4, 1, 0) AS id_group,
regdate AS date_registered, SUBSTRING(website, 1, 255) AS website_url,
SUBSTRING(website, 1, 255) AS website_title,
SUBSTRING(icq, 1, 255) AS icq, SUBSTRING(aim, 1, 16) AS aim,
SUBSTRING(yahoo, 1, 32) AS yim, SUBSTRING(msn, 1, 255) AS msn,
SUBSTRING(signature, 1, 65534) AS signature, hideemail AS hide_email,
SUBSTRING(buddylist, 1, 255) AS buddy_list,
SUBSTRING(regip, 1, 255) AS member_ip, SUBSTRING(regip, 1, 255) AS member_ip2,
SUBSTRING(ignorelist, 1, 255) AS pm_ignore_list,
timeonline AS total_time_logged_in,
CASE
WHEN birthday = '' THEN '0001-01-01'
ELSE CONCAT_WS('-', RIGHT(birthday, 4), SUBSTRING(birthday, LOCATE('-', birthday) + 1, LOCATE('-', birthday, LOCATE('-', birthday) + 1) - LOCATE('-', birthday) - 1), LEFT(birthday, LOCATE('-', birthday) - 1))
END AS birthdate
FROM {$from_prefix}users;
---*
Gewijzigd op 14/09/2011 11:34:31 door Djurre Visser
Het lijkt erop dat dit geen onderdeel van die query is, dus comment die regel 1 t/m 3 maar gewoon helemaal.
Toevoeging op 14/09/2011 11:43:35:
Nu ik dat gedaan heb krijg ik deze error..
Converting...
Converting members...Wrong value type sent to the database. Date expected. (birthdate)
Hoe voer je die convert uit, als ik vragen mag?
Deze zou alles aan moeten roepen, denk ik.
convert.php is te vinden op http://www.mijnwebsite.net/smf/convert.php
Het moest in de SMF map staan, en dat doet het.
De SMF database en MyBB database staan in dezelfde datbase, dat wat ook moest.
Dus het zou goud moeten zijn.
Toevoeging op 15/09/2011 09:01:00:
Allemaal bedankt voor de hulp..
Het het probleem gevonden. Iemand had zijn geboorte datum verkeerd in gevuld, hij had geen jaar opgegeven, heb de databases met DBKiss doorgelopen :)
Bedankt allemaal, het is gelukt!
Er mag n slotje op :)
Gewijzigd op 14/09/2011 11:56:01 door Djurre Visser