You need to run mysql_real_escape_string() on all of your input
variables before using them:
function editproduct($item_id, $item_name, $item_desc, $item_price,
$item_pix, $item_man_id, $item_cat_id) {
$item_id = mysql_real_escape_string($item_id);
$item_name = mysql_real_escape_string($item_name);
$item_desc = mysql_real_escape_string($item_desc);
$item_price = mysql_real_escape_string($item_price);
$item_pix = !empty($item_pix) ? mysql_real_escape_string($item_pix) :
null;
$item_man_id = mysql_real_escape_string($item_man_id);
$item_cat_id = mysql_real_escape_string($item_cat_id);
connect();
$sql = "UPDATE items SET item_name='{item_name}',
item_desc='{item_desc}', item_price='{item_price}', " .
(!empty($item_pix) ? "item_pix='{item_pix}', " : "") .
"item_man_id='{item_man_id}', item_cat_id='{item_cat_id}' WHERE
item_id={$item_id}";
mysql_query($sql) or die('Insert failed: ' . mysql_error());
}
It looks like you're getting the values for the parameters from a form
- you should have some sort of validity check on it after fetching the
values.
Evert
On Mon, Sep 8, 2008 at 5:11 PM, Chris Hale <[EMAIL PROTECTED]> wrote:
> Niel Archer wrote:
>>
>> Hi
>>
>>
>>>
>>> I have the following function:
>>>
>>> function
>>> add_item($item_name,$item_desc,$item_price,$item_man_id,$item_cat_id,$item_pix)
>>> {
>>> connect();
>>> if($item_pix == "")
>>> {
>>> $sql = "INSERT INTO items
>>> (item_name,item_desc,item_price,item_man_id,item_cat_id) VALUES
>>> ('$item_name','$item_desc','$item_price','$item_man_id','$item_cat_id')";
>>> }
>>> else {
>>> $sql = "INSERT INTO items
>>> (item_name,item_desc,item_price,item_pix,item_man_id,item_cat_id) VALUES
>>> ('$item_name','$item_desc','$item_price','$item_pix','$item_man_id','$item_cat_id')";
>>> }
>>> mysql_query($sql);
>>> return;
>>> }
>>>
>>> I am using the if statement because i want it so that if no picture is
>>> uploaded the entry is blank and the mysql database has a default entry of
>>> na.gif which is a "picture coming soon picture".
>>>
>>> It works fine when i run in localy on MAMP, but if i run it on my web
>>> server it doesnt add the row.
>>>
>>
>> You should be checking the mysql_query call for success and output the
>> error if it fails. Something like:
>>
>> mysql_query($sql) or die('Insert failed: ' . mysql_error());
>>
>> You'll now why it's failing then. Make sure you have error reporting
>> enabled.
>>
>>
>>>
>>> Is this a compatability error? or is there a better way to write this?
>>>
>>>
>>
>>
>> --
>> Niel Archer
>>
>>
>>
>>
>
> Oh no i havnt =[ i thought i had but no i now get this error:
>
> Insert failed: 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
> 'Tactel', which is soft, breathable and quick drying and easy to care for.
> ' at line 1
>
> Which makes no sense.
>
> This is the function:
>
> function editproduct($item_id, $item_name, $item_desc, $item_price,
> $item_pix, $item_man_id, $item_cat_id)
> {
> connect();
> if($item_pix == "")
> {
> $sql = "UPDATE items SET item_name='$item_name',
> item_desc='$item_desc', item_price='$item_price',
> item_man_id='$item_man_id', item_cat_id='$item_cat_id' WHERE
> item_id=$item_id";
> }
> else
> {
> $sql = "UPDATE items SET item_name='$item_name',
> item_desc='$item_desc', item_price='$item_price', item_pix='$item_pix',
> item_man_id='$item_man_id', item_cat_id='$item_cat_id' WHERE
> item_id=$item_id";
> }
> mysql_query($sql) or die('Insert failed: ' . mysql_error());
> return;
> }
>
> adn this is the process:
>
> $item_id = $_POST['item_id'];
> $item_name = $_POST['fname'];
> $item_desc = $_POST["fdesc"];
> $item_price = $_POST['fprice'];
> $item_man_id = $_POST['fman'];
> $item_cat_id = $_POST['fcat'];
> $item_pix = $_FILES['pix']['name'];
> $dest = 'images/items/'.$_FILES['pix']['name'];
> $temp_file = $_FILES['pix']['tmp_name'];
> move_uploaded_file($temp_file,$dest);
> editproduct($item_id, $item_name, $item_desc, $item_price, $item_pix,
> $item_man_id, $item_cat_id);
> $message = 'Product Updated';
> header("Location:admin.php?message=$message");
>
> --
> PHP Database Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>
--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php