SQL UPDATE query executes correctly via MySQL Workbench but not via PHP -
i have following sql query:
update uploads set username='test2', useremail='test2', uploadcount='4' country = 'algeria' when run query via mysql workbench executes fine.
i trying run via website / php however, , attempting execute query in following way:
$sql = "update uploads set username='$user_data[name]', useremail='$user_data[email]', uploadcount='$user_data[filesuploaded]' country = '$country'"; echo $sql; try { $pdo = new pdo('mysql:host=localhost; dbname=db01', $username, $password); $pdo->setattribute(pdo::attr_errmode, pdo::errmode_exception); $stmt = $pdo->prepare($sql); $stmt->execute(); # affected rows? echo $stmt->rowcount(); // 1 } catch(pdoexception $e) { echo 'error: ' . $e->getmessage(); } the sql query being built via variables here, copy / pasted echo of $sql workbench check there no syntax errors creeping in, echo of $sql pasted above.
when run via web application, 0 row affected , update not made, going wrong?
thank you
update: new paramatarized version of pdo:
$sql = "update uploads set "; $sql .="username = :name, useremail = :email, uploadcount = :filesuploaded"; $sql .=" country = '$country'"; try { $pdo = new pdo('mysql:host=localhost; dbname=db01', $username, $password); $pdo->setattribute(pdo::attr_errmode, pdo::errmode_exception); $stmt = $pdo->prepare($sql); $stmt->bindparam(":name", $user_data['name']); $stmt->bindparam(":email", $user_data['email']); $stmt->bindparam(":filesuploaded", $user_data['filesuploaded']); $stmt->execute(); # affected rows? echo $stmt->rowcount(); // 1 } catch(pdoexception $e) { echo 'error: ' . $e->getmessage(); }
it looks you're trying insert information array while it's in quotes. try this:
$sql = "update uploads set username='".$user_data['name']."', useremail='".$user_data['email']."', uploadcount='".$user_data['filesuploaded']."' country = '$country'";
Comments
Post a Comment