Mercurial > hg > fapweb
comparison msitegen.inc.php @ 487:289692a0169c
More helper functions.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Sat, 07 Dec 2013 15:17:43 +0200 |
parents | e0fa6bb432d7 |
children | 7d1f08ec1d45 |
comparison
equal
deleted
inserted
replaced
486:e0fa6bb432d7 | 487:289692a0169c |
---|---|
458 $db = stConnectSQLDBSpec(stGetSetting("sqlDB")); | 458 $db = stConnectSQLDBSpec(stGetSetting("sqlDB")); |
459 return ($db !== false); | 459 return ($db !== false); |
460 } | 460 } |
461 | 461 |
462 | 462 |
463 function stGetSQLParam($type, $value) | 463 function stDBPrepareSQLUpdate($dbh, $table, $cond, $pairs) |
464 { | 464 { |
465 global $db; | 465 $sql = array(); |
466 switch ($type) | 466 foreach ($pairs as $name => $attr) |
467 { | 467 { |
468 case "d": | 468 $sql[] = $name."=".stDBGetSQLParam($dbh, $attr, $name); |
469 return intval($value); | 469 } |
470 | 470 return |
471 case "s": | 471 "UPDATE ".$table." SET ".implode(",", $sql). |
472 return $db->quote($value); | 472 ($cond != "" ? " ".$cond : ""); |
473 | 473 } |
474 case "b": | 474 |
475 return intval($value) ? 1 : 0; | 475 |
476 | 476 function stDBPrepareSQL($dbh) |
477 case "D": | |
478 return intval(stGetRequestItem($value)); | |
479 | |
480 case "S": | |
481 return $db->quote(stGetRequestItem($value)); | |
482 | |
483 case "Q": | |
484 return $db->quote(stGetRequestItem($value)); | |
485 | |
486 case "B": | |
487 return intval(stGetRequestItem($value)) ? 1 : 0; | |
488 } | |
489 } | |
490 | |
491 | |
492 function stPrepareSQL() | |
493 { | 477 { |
494 $argc = func_num_args(); | 478 $argc = func_num_args(); |
495 $argv = func_get_args(); | 479 $argv = func_get_args(); |
496 if ($argc < 1) | 480 |
497 { | 481 $fmt = $argv[1]; |
498 error_log("Invalid stPrepareSQL() call, no arguments!"); | |
499 return FALSE; | |
500 } | |
501 | |
502 $fmt = $argv[0]; | |
503 $len = strlen($fmt); | 482 $len = strlen($fmt); |
504 $sql = ""; | 483 $sql = ""; |
505 $argn = 1; | 484 $argn = 2; |
506 $pos = 0; | 485 for ($pos = 0; $pos < $len; $pos++) |
507 while ($pos < $len) | |
508 { | 486 { |
509 if ($fmt[$pos] == "%") | 487 if ($fmt[$pos] == "%") |
510 { | 488 { |
511 if ($argn < $argc) | 489 if ($argn < $argc) |
512 $sql .= stGetSQLParam($fmt[++$pos], $argv[$argn++]); | 490 $sql .= stGetSQLParam($dbh, $fmt[++$pos], $argv[$argn++]); |
513 else | 491 else |
514 { | 492 { |
515 error_log("Invalid SQL statement format string '".$fmt. | 493 error_log("Invalid SQL statement format string '".$fmt. |
516 "', not enough parameters specified (".$argn." of ".$argc.")"); | 494 "', not enough parameters specified (".$argn." of ".$argc.")"); |
517 return FALSE; | 495 return FALSE; |
518 } | 496 } |
519 } | 497 } |
520 else | 498 else |
521 $sql .= $fmt[$pos]; | 499 $sql .= $fmt[$pos]; |
522 $pos++; | |
523 } | 500 } |
524 | 501 |
525 return $sql; | 502 return $sql; |
526 } | 503 } |
527 | 504 |
528 | 505 |
529 function stPrepareSQLUpdate($table, $cond, $pairs) | 506 function stPrepareSQL() |
530 { | 507 { |
531 $sql = array(); | 508 global $db; |
532 foreach ($pairs as $name => $attr) | 509 $argc = func_num_args(); |
533 { | 510 $argv = func_get_args(); |
534 $sql[] = $name."=".stGetSQLParam($attr, $name); | 511 |
535 } | 512 $fmt = $argv[0]; |
536 return | 513 $len = strlen($fmt); |
537 "UPDATE ".$table." SET ".implode(",", $sql). | 514 $sql = ""; |
538 ($cond != "" ? " ".$cond : ""); | 515 $argn = 1; |
539 } | 516 for ($pos = 0; $pos < $len; $pos++) |
540 | 517 { |
541 | 518 if ($fmt[$pos] == "%") |
542 function stExecSQL($sql) | 519 { |
543 { | 520 if ($argn < $argc) |
544 global $db; | 521 $sql .= stGetSQLParam($db, $fmt[++$pos], $argv[$argn++]); |
545 if (($res = $db->query($sql)) !== FALSE) | 522 else |
523 { | |
524 error_log("Invalid SQL statement format string '".$fmt. | |
525 "', not enough parameters specified (".$argn." of ".$argc.")"); | |
526 return FALSE; | |
527 } | |
528 } | |
529 else | |
530 $sql .= $fmt[$pos]; | |
531 } | |
532 | |
533 return $sql; | |
534 } | |
535 | |
536 | |
537 function stDBExecSQL($dbh, $sql) | |
538 { | |
539 if (($res = $dbh->query($sql)) !== FALSE) | |
546 return $res; | 540 return $res; |
547 else | 541 else |
548 { | 542 { |
549 stLogSQLError($sql); | 543 stLogSQLError($sql); |
550 stError("Oh noes! SQL error #23!"); | 544 stError("Oh noes! SQL error #23!"); |
551 return FALSE; | 545 return FALSE; |
552 } | 546 } |
553 } | 547 } |
554 | 548 |
555 | 549 |
556 function stFetchSQL($sql) | 550 function stDBFetchSQL($dbh, $sql) |
557 { | 551 { |
558 global $db; | 552 if (($res = $dbh->query($sql)) !== FALSE) |
559 if (($res = $db->query($sql)) !== FALSE) | |
560 { | |
561 return $res->fetch(); | 553 return $res->fetch(); |
562 } | |
563 else | 554 else |
564 { | 555 { |
565 stLogSQLError($sql); | 556 stLogSQLError($sql); |
566 stError("Oh noes! SQL error #31!"); | 557 stError("Oh noes! SQL error #31!"); |
567 return FALSE; | 558 return FALSE; |
568 } | 559 } |
569 } | 560 } |
570 | 561 |
571 | 562 |
572 function stFetchSQLColumn($sql, $column = 0) | 563 function stDBFetchSQLColumn($dbh, $sql, $column = 0) |
573 { | 564 { |
574 global $db; | 565 if (($res = $dbh->query($sql)) !== FALSE) |
575 if (($res = $db->query($sql)) !== FALSE) | |
576 { | |
577 return $res->fetchColumn($column); | 566 return $res->fetchColumn($column); |
578 } | |
579 else | 567 else |
580 { | 568 { |
581 stLogSQLError($sql); | 569 stLogSQLError($sql); |
582 stError("Oh noes! SQL error #81!"); | 570 stError("Oh noes! SQL error #81!"); |
583 return FALSE; | 571 return FALSE; |
584 } | 572 } |
585 } | 573 } |
586 | 574 |
587 | 575 |
588 { | 576 function stPrepareSQLUpdate($table, $cond, $pairs) |
577 { | |
578 global $db; | |
579 return stDBPrepareSQLUpdate($db, $table, $cond, $pairs); | |
580 } | |
581 | |
582 | |
583 function stExecSQL($dbh, $sql) | |
584 { | |
585 global $db; | |
586 return stDBExecSQL($db, $sql); | |
587 } | |
588 | |
589 | |
590 function stFetchSQL($dbh, $sql) | |
591 { | |
592 global $db; | |
593 return stDBFetchSQL($db, $sql); | |
594 } | |
595 | |
596 | |
597 function stFetchSQLColumn($sql, $column = 0) | |
598 { | |
599 global $db; | |
600 return stDBFetchSQLColumn($db, $sql, $column); | |
589 } | 601 } |
590 | 602 |
591 | 603 |
592 function stStrChop($str, $len) | 604 function stStrChop($str, $len) |
593 { | 605 { |