Jasmine wrote:
> Hi
>
> Is there any way to pass variables into MySQL statements for execution? I m
> using the DBI package. Thanks!
I think the problem has more to do with the join function
> Heres my snippet and it doesnt work.
> dbconnect();
> prepare the query for execution
> my ($sql01) = join "select description from table where host=",
> "$abc;";
>perldoc -f join
join EXPR,LIST
Joins the separate strings of LIST into a single string with
fields separated by the value of EXPR, and returns that new
string. Example:
$rec = join(':', $login,$passwd,$uid,$gid,$gcos,$home,$shell);
Beware that unlike "split", "join" doesn't take a pattern as its
first argument. Compare "split".
You didn't mention what results you got when you tested this. You should have
received an error on the line above, since "$abc;" is a scalar rather than a list.
If it were in parentheses, with one more element:
my $abc = "First element ";
my $defg = " the rest";
my $sql01 = join "select description from table where host=", ("$abc;", $defg);
print "$sql01\n";
The results would be something like:
First element select description from table where host= the rest
Is that the effect you were looking for?
You probably only need a simple concatenation:
my $sql01 = "select description from table where host=" . "$abc;";
or an implicit concatenation [which you have already done by adding the semicolon at
the end of the SQL statement]:
my $sql01 = "select description from table where host=$abc;";
Also, you notice I removed the parentheses around $sql01? That is because join
returns a scalar--a single value--while the parentheses put the expected return value
into list context.
Basically, you have the array-to-scalar funnel turned the wrong way here.
Joseph
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]