Sarah B
Sarah B

Reputation: 41

SQL Update Query Error in PHP Function

I'm currently trying to use the following PHP function/SQL query with a page that edits medications on a project I'm building for school. I'm getting the following error and having trouble to finding where the error is :

Syntax error or access violation: 1064 You have an error in your SQL syntax;

function edit_medicine($medicine_name, $medicine_dose, $medicine_date, $medicine_current, $medicine_id) {
global $db;
$query = "UPDATE Medicine
             SET MedicineName = :medicine_name, 
             Medicine Dose = :medicine_dose, 
             MedicineDatePrescribed = :medicine_date, 
             MedicineCurrent = :medicine_current
              WHERE MedicineKey = :medicine_id";
$statement = $db->prepare($query);
$statement->bindValue(':medicine_name', $medicine_name);
$statement->bindValue(':medicine_dose', $medicine_dose);
$statement->bindValue(':medicine_date', $medicine_date);
$statement->bindValue(':medicine_current', $medicine_current);
$statement->bindValue(':medicine_id', $medicine_id);
$statement->execute();
$statement->closeCursor();
}

I'd appreciate any help anyone can offer- it's the end of finals week and I'm totally burnt out. Thanks!

Upvotes: 4

Views: 64

Answers (2)

Tamil
Tamil

Reputation: 1203

If double quotes or backtick does not work , try including the string within square brackets.

For example

SELECT [Business Name],[Other Name] FROM your_Table

Upvotes: 0

Logan Wayne
Logan Wayne

Reputation: 5991

Use quote to your column names, especially your Medicine Dose column because of its space (). Next time, don't use space to name your columns:

$query = "UPDATE `Medicine`
             SET `MedicineName` = :medicine_name, 
             `Medicine Dose` = :medicine_dose, 
             `MedicineDatePrescribed` = :medicine_date, 
             `MedicineCurrent` = :medicine_current
             WHERE `MedicineKey` = :medicine_id";

Upvotes: 4

Related Questions