PHP MySQL不';t使用子字符串执行更新

PHP MySQL不';t使用子字符串执行更新,php,mysql,sql-update,substring,Php,Mysql,Sql Update,Substring,我面临一个PHP问题,它在我的脚本中不执行一个查询。 SQL查询在我的MYSQL控制台中运行良好,但什么也没有发生。年份列保持为空: $UpdateYear='UPDATE `pat` SET `Year` = SUBSTRING(`Prepa`,7,4)'; mysqli_query($connWarehouse,$UpdateYear) or die(mysqli_error($connWarehouse)); 我不知道我做错了什么。以下是完整的脚本: <?php $serve

我面临一个PHP问题,它在我的脚本中不执行一个查询。 SQL查询在我的MYSQL控制台中运行良好,但什么也没有发生。年份列保持为空:

$UpdateYear='UPDATE `pat` SET `Year` = SUBSTRING(`Prepa`,7,4)';
mysqli_query($connWarehouse,$UpdateYear) or   die(mysqli_error($connWarehouse)); 
我不知道我做错了什么。以下是完整的脚本:

<?php
$servername = "localhost";
$username = "root";
$password = "";
$db="datawarehouse";

// Create connection
$connWarehouse = new mysqli($servername, $username, $password, $db);

// Check connection
if ($connWarehouse->connect_error) {
    die("Connection failed: " . $connWarehouse->connect_error);
}
$UpdateYear='UPDATE `pat` SET `Year` = SUBSTRING(`Prepa`,7,4)';
    mysqli_query($connWarehouse,$UpdateYear) or   die(mysqli_error($connWarehouse));

mysqli_close($connWarehouse));
?>

我终于解决了这个问题。我不知道这样做是否正确。我必须打开与数据库的新连接才能执行

alter.php:

<?php
$servername = "localhost";
$username = "root";
$password = "";
$db="datawarehouse";

// Create connection
$connWarehouse = new mysqli($servername, $username, $password, $db);

// Check connection
if ($connWarehouse->connect_error) {
    die("Connection failed: " . $connWarehouse->connect_error);
}
$AddYear='ALTER TABLE `pat` ADD COLUMN `Year` YEAR;';
mysqli_query($connWarehouse,$AddYear) or die(mysqli_error($connWarehouse));

mysqli_close($connWarehouse));
include 'uppat.php';
?>

数据库字段中有什么
Prepa
?什么类型的字段是
Year
?字段Prepa是一个varchar(10),Year被定义为Year。如果您将
子字符串(Prepa,7,4)
替换为类似
“1998”
?Prepa中的值是什么?Prepa被定义为varchar(10),它包含的值是17/06/2018
<?php
require_once 'config-datawarehouse.php';

$UpdateYear='UPDATE `pat` SET `Year` = SUBSTRING(`DatePrepa`,7,4)';

mysqli_query($conn,$UpdateYear) or die(mysqli_error($conn));

mysqli_close($conn);
?>