Go Back   vb.org Archive > vBulletin 3 Discussion > vB3 Programming Discussions
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools Display Modes
  #1  
Old 07-22-2004, 12:35 AM
AN-net's Avatar
AN-net AN-net is offline
 
Join Date: Dec 2003
Location: AnimationTalk.com
Posts: 2,367
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default i dont understand

ok im getting an mysql syntax error saying:
Quote:
Originally Posted by gay mysql!
Invalid SQL: INSERT INTO journals
(journalist,journalist_id,journaldate,journaldesc, private,whocanview,lastentry,
lastentry_date,ipaddress,journalname)
VALUES ('Shon','6','1090459535','The only game dog journal',
'0','','Issue #1','1090459535','65.12.191.223'
,'Sporting Dog Journal'

mysql 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 '' at line 6
here is my code:
PHP Code:
                    $nameformat=",'".addslashes($jname)."'";
                    
$DB_site->query_first("INSERT INTO ".TABLE_PREFIX."journals 
                    (journalist,journalist_id,journaldate,journaldesc,private,whocanview,lastentry,
                    lastentry_date,ipaddress"
.iif($_POST['usejname']=='1'',journalname').") 
                    VALUES ('"
.addslashes($journalist)."','".intval($journalistid)."','".TIMENOW."','".addslashes($jdesc)."',
                    '"
.$jpriv."','".addslashes($whocanviewj)."','".addslashes($etitle)."','".TIMENOW."','".$REMOTE_ADDR."'
                    "
.iif($_POST['usejname']=='1'$nameformat)."
                    "
); 
anyone know y cause having nothing in a field for an insert query has never given me a problem before>_>
Reply With Quote
  #2  
Old 07-22-2004, 01:19 AM
Velocd's Avatar
Velocd Velocd is offline
 
Join Date: Mar 2002
Location: CA University
Posts: 1,696
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

The error I spotted:

PHP Code:
".iif($_POST['usejname']=='1', $nameformat)." 
$nameformat is a string, no? You are not providing the single quotes nor comma for it.

Here is a revamped and more readable version of your PHP:

PHP Code:
$nameformat ",'".addslashes($jname)."'";
 
$DB_site->query_first("
    INSERT INTO "
.TABLE_PREFIX."journals
        (journalist, journalist_id, journaldate,
        journaldesc, private, whocanview, lastentry,
        lastentry_date, ipaddress"
.($_POST['usejname'] ? ', journalname''').") 
    VALUES 
        ('"
.addslashes($journalist)."', '".intval($journalistid)."', 
        "
.TIMENOW.", '".addslashes($jdesc)."', '".$jpriv."', '".addslashes($whocanviewj)."', 
        '"
.addslashes($etitle)."', ".TIMENOW.", '".$REMOTE_ADDR."'".($_POST['usejname'] ? ", '$nameformat'"'')."
        )
"
); 
I recommend to stick to this standard of formatting your queries. It's how vBulletin does it, and it just allows for easier visibility of spotting errors.

Other things I recommend:
  • Don't quote numbers. e.g. $_POST['usejname'] == '1'. For the most cases when comparing if a value is 0 or 1, or if it has any value not zero, you can drop out the == operator and second operand and just use if($_POST['usejname']).
  • Don't quote the TIMENOW constant. It returns a 10 integer unix timestamp, which again, is a number.
  • Use the ternary operator (condition ? if_true_value: if_false_value) instead of the vBs iif(). If you ever go outside vBulletin coding, iif wont be available, so you should know ? and :
  • $_POST['usejname'] looks a lot like $_POST['username'], maybe use underscores or something.. $_POST['use_jname'].
Reply With Quote
  #3  
Old 07-22-2004, 01:45 AM
AN-net's Avatar
AN-net AN-net is offline
 
Join Date: Dec 2003
Location: AnimationTalk.com
Posts: 2,367
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

thanks so much ^_^
Reply With Quote
  #4  
Old 07-22-2004, 01:52 AM
AN-net's Avatar
AN-net AN-net is offline
 
Join Date: Dec 2003
Location: AnimationTalk.com
Posts: 2,367
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

i now get a parse error for an unexpected comma on line 621 which is:
PHP Code:
                                                        lastentry_dateipaddress".($_POST['usejname'] ? ', journalname', '')."
Reply With Quote
  #5  
Old 07-22-2004, 03:30 AM
AN-net's Avatar
AN-net AN-net is offline
 
Join Date: Dec 2003
Location: AnimationTalk.com
Posts: 2,367
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

i fixed it turns out you forgot to use a : instead of a comma in defining the true and false values
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 06:40 PM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.05438 seconds
  • Memory Usage 2,223KB
  • Queries Executed 13 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (1)ad_showthread_firstpost
  • (1)ad_showthread_firstpost_sig
  • (1)ad_showthread_firstpost_start
  • (4)bbcode_php
  • (1)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (5)post_thanks_box
  • (5)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (5)post_thanks_postbit_info
  • (5)postbit
  • (5)postbit_onlinestatus
  • (5)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete