繁体   English   中英

在一个PHP文件中运行2个MySQL更新查询

[英]Run 2 MySQL update queries in one PHP file

我试着跑

// Create connection
$conn = new mysqli($servername,$username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
} 
$sql = "UPDATE pm_videos SET `description` = REPLACE(  `description` ,'Facebook',  '')";
$sql = "UPDATE pm_videos SET `description` = REPLACE(  `description` ,'Twitter',  '')";

if ($conn->query($sql) === TRUE) {
echo "Record updated successfully";
} else {
echo "Error updating record: " .  $conn->error;
}
$conn->close();

但只有Twitter被取代。 我是PHP新手。 也许有人可以帮我解决这个问题。 谢谢。

$conn->query($sql)语句运行您的查询。 您将在运行前覆盖第一个$sql (Facebook中的第一个)。 你想做类似的事情

$sql = "UPDATE pm_videos SET `description` = REPLACE(  `description` ,'Facebook',  '')";
if ($conn->query($sql) === TRUE) {
    echo "Record updated successfully with Facebook";
} else {
    echo "Error updating record: " .  $conn->error;
}
$sql = "UPDATE pm_videos SET `description` = REPLACE(  `description` ,'Twitter',  '')";
if ($conn->query($sql) === TRUE) {
    echo "Record updated successfully with Twitter";
} else {
    echo "Error updating record: " .  $conn->error;
}

您的第一个查询将不会执行,因为$ sql字符串将被覆盖,最终您仅执行第二个查询。

由于您多次执行同一查询(仅更改参数),因此建议您使用准备好的语句和占位符,如下所示:

$sql = "UPDATE pm_videos SET `description` = REPLACE(`description`, ?,  '')";

$conn = new mysqli($servername,$username, $password, $dbname);
$stmt = $conn->prepare($sql);
$stmt->bind_param('s', $content);

$content='facebook';
$stmt->execute();

$content='twitter';
$stmt->execute();

$stmt->close();
$conn->close();

(我删除了所有错误检查,您可能想添加自己的错误检查例程)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM