mysql php 使用变量更新
mysql php update with a variable
所以我在这方面已经有一段时间了,我所做或研究的任何事情都会出现更多错误。我不断收到此错误:致命错误: 使用如下代码调用非对象上的成员函数 query()。 pic 列是他们上传的个人资料图片目录。
$newTarget_file = "uploads/picture.png"
....
$sql = "UPDATE users SET pic='$newTarget_file' WHERE username=:username";
if ($conn->query($sql) === TRUE) {
echo "Record updated successfully";
} else {
echo "Error updating record: " . $conn->error;
}
这也是一个提交的php,保存了他们上传的图片,目录是$newTarget_file。这真的让我对我如何做到这一点感到沮丧。在此先感谢您的帮助。
基本上我想用我已经有的变量更新 pic 列 username=:username 已经 $newTarget_file 。我该怎么办?
正如其他人所说,错误是因为您的连接对象不存在。
Fatal error: Call to a member function query() on a non-object
根据您正在学习的教程,您实现了吗?
$conn = new mysqli($servername, $dbuser, $dbpw, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
您应该在查询尝试 运行 之前遇到连接错误。另外,正如迈克尔指出的那样,您不能在 mysqli 中使用命名参数。它仅在 PDO 中受支持,但您仍然可以使用占位符。您的新代码应如下所示。
if (!($stmt = $conn->prepare("UPDATE users SET pic=? WHERE username=?"))) {
echo "Prepare failed: (" . $conn->errno . ") " . $conn->error;
exit;
}
if (!$stmt->bind_param("ss", $newTarget_file, $username)) {
echo "Binding parameters failed: (" . $stmt->errno . ") " . $stmt->error;
exit;
}
if (!$stmt->execute()) {
echo "Execute failed: (" . $stmt->errno . ") " . $stmt->error;
exit;
}
$stmt->close();
所以我在这方面已经有一段时间了,我所做或研究的任何事情都会出现更多错误。我不断收到此错误:致命错误: 使用如下代码调用非对象上的成员函数 query()。 pic 列是他们上传的个人资料图片目录。
$newTarget_file = "uploads/picture.png"
....
$sql = "UPDATE users SET pic='$newTarget_file' WHERE username=:username";
if ($conn->query($sql) === TRUE) {
echo "Record updated successfully";
} else {
echo "Error updating record: " . $conn->error;
}
这也是一个提交的php,保存了他们上传的图片,目录是$newTarget_file。这真的让我对我如何做到这一点感到沮丧。在此先感谢您的帮助。
基本上我想用我已经有的变量更新 pic 列 username=:username 已经 $newTarget_file 。我该怎么办?
正如其他人所说,错误是因为您的连接对象不存在。
Fatal error: Call to a member function query() on a non-object
根据您正在学习的教程,您实现了吗?
$conn = new mysqli($servername, $dbuser, $dbpw, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
您应该在查询尝试 运行 之前遇到连接错误。另外,正如迈克尔指出的那样,您不能在 mysqli 中使用命名参数。它仅在 PDO 中受支持,但您仍然可以使用占位符。您的新代码应如下所示。
if (!($stmt = $conn->prepare("UPDATE users SET pic=? WHERE username=?"))) {
echo "Prepare failed: (" . $conn->errno . ") " . $conn->error;
exit;
}
if (!$stmt->bind_param("ss", $newTarget_file, $username)) {
echo "Binding parameters failed: (" . $stmt->errno . ") " . $stmt->error;
exit;
}
if (!$stmt->execute()) {
echo "Execute failed: (" . $stmt->errno . ") " . $stmt->error;
exit;
}
$stmt->close();