php - 如何在 php 中运行 mysql 脚本?
问题描述
我有一个mysql脚本需要在php中运行,我试过了,但没有成功。有人可以帮我吗?
我也尝试使用 mysqli_multi_query,但它也不起作用。
<?php
include 'connection.php';
if(isset($_GET["action"])&&($_GET["action"]=="versave")){
$gp_name = $_GET['gp_name'];
$version = $_GET['version'];
$query_vers = "CREATE TEMPORARY TABLE tmp SELECT * from `gp_info` WHERE `gp_name`= $gp_name";
$query_vers .= "UPDATE tmp SET `version` = $version";
$query_vers .= "ALTER TABLE tmp DROP id";
$query_vers .= "INSERT INTO `gp_info` SELECT 0, tmp.* FROM tmp";
$query_vers .= "DROP TABLE tmp";
mysqli_multi_query($connect, $query_vers);
header("Location: gp_data.php");
}
?>
<form id="verForm" name="versaveForm" method="get">
<input type="hidden" name="action" value="versave">
<div>
<input type="text" id="gp_name" name="gp_name">
<input type="text" id="version" name="version">
</div>
<input type="submit" name="vers" value="Version" id="versave">
</form>
解决方案
使用 PDO 代替mysql_query()
(另请参阅:从 PHP 中加载 .sql 文件)
<?php
if(isset($_POST["action"])&&($_POST["action"]=="versave")) {
$query_vers = "CREATE TEMPORARY TABLE tmp SELECT * from `gp_info` WHERE `gp_name`= gp_name;
UPDATE tmp SET `version` = version;
ALTER TABLE tmp DROP id;
INSERT INTO `gp_info` SELECT 0, tmp.* FROM tmp;
DROP TABLE tmp";
$db = new PDO('mysql:host=localhost;dbname=test', 'username', 'passwd');
$st = $db->exec($query_vers);
}
推荐阅读
- reactjs - 使用 create-react-app 调试 jest 单元测试不会在 VSCode 中达到断点
- asp.net - ASP.NET - 如何使用来自另一个模型的数据加载模型,该模型通过 2 个外键删除了两次
- javascript - 为什么输入返回空?
- mysql - 错误 MariaDB 服务器版本的原因是什么,以便在附近使用正确的语法
- adobe - 如何在 AEM 表单工作流步骤中动态更改图像
- java - Hibernate & SQLite3,一对多关系映射
- kubernetes - Kubernetes Job 和 Pod 中 activeDeadlineSeconds 的区别
- ios - 在 touchesBegan 中调用时,removeFromSuperview() 对 swift 不起作用
- java - 如何创建一个抽象适配器类,强制子类在构造函数中调用特定方法
- node.js - 具有超时回调的机器人每 20 分钟重置一次。在 Azure 上部署时?