首页 > 解决方案 > 如何在 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>

标签: phpmysql

解决方案


使用 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);
}

推荐阅读