我有这个PHP SQL语句:
$updateCategory = "UPDATE category
SET name=".$name.", description=".$description.",
parent=".$parent.", active=".$active."
WHERE id=".$catID."";
写这个的最好方法是什么?
谢谢,
克里斯。
答案 0 :(得分:14)
我建议您使用预准备语句,而不是将查询字符串连接在一起:
$sql = 'UPDATE
category
SET
name=:name,
description=:description,
parent=:parent,
active=:active
WHERE
id=:catID';
如果你使用的是PDO,我强烈建议你这样称呼它:
$params = array(
':name' => $name,
':description' => $description,
':parent' => $parent,
':active' => $active,
':catID' => $catID
);
$stmt = $pdo->prepare($sql);
$stmt->execute($params);
你可能会问,“为什么这一切都麻烦?”这种方法的优点是压倒性的:
答案 1 :(得分:2)
您可以将其格式化,以使其更具可读性。
$updateCategory = "
UPDATE
category
SET
`name` = '" . $name . "',
`description` = '" . $description . "',
`parent` = '" . $parent . "',
`active` = '" . $active . "'
WHERE
`id` = '" . $catID . "'";
答案 2 :(得分:1)
我发现连接查询会让我头疼,语法错误 - 所有这些引号和点都像辣椒一样。以下是我编写查询的方法:
$updateCategory = "
UPDATE category
SET catname = '$name', description = '$description',
parent = '$parent', active = '$active'
WHERE id = '$catID'";
请注意,“name”是保留字,不应用作列名。此外,如果id是一个整数,则不需要引用$ catID。
答案 3 :(得分:0)
您可以尝试:
$update = "update table_name SET name = '$name', email = '$email', password = '$password', phoneno = '$phoneno' WHERE id = '$id'";