|   | php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login | 
| 
  [2001-11-11 03:28 UTC] az at i7 dot com dot au
 When inserting text using named binds, PHP will strip trailing spaces. The same query on the same database using the same Oracle client libraries. (All Oracle 8.1.6)
$db = ocilogon("u", "p", "sid");
$st = ociparse($db, "insert into test values (:id, :text)");
ocibindbyname($st, ":text", &$text, 2000);
ocibindbyname($st, ":id", &$id, 22);
$text = "  this line has spaces   ";
$node_id = 666;
ociexecute($st);
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits             | |||||||||||||||||||||||||||||||||||||
|  Copyright © 2001-2025 The PHP Group All rights reserved. | Last updated: Fri Oct 31 14:00:01 2025 UTC | 
It seems, that I have the same problem using PHP 4.3.0 on Apache 1.3.22 with Oracle 8.1.7: When I use a OciBindByName, the string is trimed at the end. This small program uses the DUAL from Oracle just to return the input: $conn = OciLogon ("x","y","z"); $val = " X X "; // last letter is a " " (blank) // direct way without a bind variable $stm1 = OciParse($conn, "select '".$val."' from dual"); OciExecute($stm1); OciFetch($stm1); echo "<b>", OciResult($stm1, 1), "</b><br>\n"; // now using a bind variable: $stm2 = OciParse($conn, "select :input from dual"); OciBindByName($stm2, ":input", &$val, 10); OciExecute($stm2); OciFetch($stm2); echo "<b>", OciResult($stm2, 1), "</b><br>\n"; OciLogoff($conn); The output is: <b> X X </b><br> <b> X X</b><br> But I want to get the same output for the direct way and when I use a bind variable. Thank you for any idea how to get the string with tailing spaces right into Oracle using a bind variable. Best wishes, JensMy mistake -- it's Closed, not Open ("green means Closed, green means Closed!"), but, to my mind, still without satisfactory explanation. Cheers!I also wonder why this is closed. Just encountered a simpler case: I cannot select using this field: LOCATION NOT NULL VARCHAR2(2) those records which have ' ' (two spaces) for that LOCATION's value. Non-space values work fine. Interactive SQLPLUS confirms those rows do exist. Oracle 8 PHP 4.3.1 Solaris SunOS dmc 5.7 sun4u sparc SUNW,Ultra-Enterprise