Php 查询不';t在数据库中插入值
在我的查询中,update语句不起作用,给出的错误是: 参数的数目与准备的语句不匹配 这是我的代码:Php 查询不';t在数据库中插入值,php,sql,Php,Sql,在我的查询中,update语句不起作用,给出的错误是: 参数的数目与准备的语句不匹配 这是我的代码: public function update_resource($resource) { $mysqli = new MySQLi(HOST, USERNAME, PASSWORD, DATABASE); $this->connection_state($mysqli); $id = $resource['id']; $descrizione = $r
public function update_resource($resource)
{
$mysqli = new MySQLi(HOST, USERNAME, PASSWORD, DATABASE);
$this->connection_state($mysqli);
$id = $resource['id'];
$descrizione = $resource['descrizione'];
$sigla = $resource['sigla'];
$colore = $resource['colore'];
$planning = $resource['planning'];
try
{
$query = "UPDATE risorse SET descrizione = '$descrizione'
AND sigla = '$sigla' AND colore = '$colore' AND planning = '$planning'
WHERE id = '$id' ";
$stmt = $mysqli->prepare($query);
$stmt -> bind_param("ssssi", $descrizione, $sigla, $colore, $planning, $id);
echo $query;
if($stmt->execute())
{
echo "Added!";
}
else
{
echo "Err: " . $stmt->error;
}
}catch(Exception $e){ echo $e->getMessage(); }
}
代码进入添加的条件,但查询失败,有什么问题?您的问题是查询中没有任何占位符。 请参阅,了解如何设置占位符 通常,占位符是
?
,稍后将用值替换,因此您的查询应该如下所示:
$query = "UPDATE risorse SET descrizione = ?
AND sigla = ? AND colore = ? AND planning = ?
WHERE id = ?";
请在得到答案后访问。请参见示例#1执行一个带有命名占位符的准备好的语句它应该是$query=“UPDATE risorse SET Descriptione=?,sigla=?,colore=?,planning=?WHERE id=?”;我现在对这个有点生疏了,你能给我看看吗?
public function update_resource($resource)
{
$mysqli = new mysqli(HOST, USERNAME, PASSWORD, DATABASE);
if ($mysqli->connect_errno) {
echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}
$id = $resource['id'];
$descrizione = $resource['descrizione'];
$sigla = $resource['sigla'];
$colore = $resource['colore'];
$planning = $resource['planning'];
try
{
$query = "UPDATE risorse SET descrizione = '$descrizione'
, sigla = '$sigla', colore = '$colore', planning = '$planning'
WHERE id = '$id' ";
$stmt = $mysqli->prepare($query);
$stmt -> bind_param($descrizione, $sigla, $colore, $planning, $id);
echo $query;
if($stmt->execute())
{
echo "Added!";
}
else
{
echo "Err: " . $stmt->error;
}
}catch(Exception $e){ echo $e->getMessage(); }
}?