gpt4 book ai didi

php - MySQL Text 数据类型的作用类似于 Int 数据类型

转载 作者:行者123 更新时间:2023-11-29 09:24:35 25 4
gpt4 key购买 nike

所以我有一个有趣的问题。我创建了一个表,其列明确定义为文本数据类型(名称列)。当我向其中插入字符串时,它返回 0。当我简单地输入一个整数时,它会存储该整数。长话短说,将该列视为整数而不是文本字段。这是创建语句(我正在使用 php 并插入到 wordpress 数据库中)。

global $wpdb;
$charset_collate = $wpdb->get_charset_collate();
require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
$sql = "CREATE TABLE IF NOT EXISTS $table_name (
oid INT NOT NULL AUTO_INCREMENT,
user_id INT NOT NULL,
name TEXT NOT NULL,
date DATE NOT NULL,
total FLOAT NOT NULL,
email TEXT NOT NULL,
phone TEXT NOT NULL,
PRIMARY KEY (oid)
) $charset_collate;";
dbDelta( $sql );

这是插入语句

global $wpdb;
$data = array('user_id' => $_POST['uid'], 'name' => 965, 'date' => $_POST['CurrentDay'], 'total' => $_POST['Total'], 'email' => $_POST['Email'], 'phone' => $_POST['Phone']);
$format = array('%s','%d');
$wpdb->insert($table, $data, $format);
$my_id = $wpdb->insert_id;

您可以忽略“名称”列的 965(该列和行返回 965)...我尝试将其作为字符串...'name' => 'Shane',...每次我输入了一个字符串,它在该列中返回 0。

最佳答案

wpdb->insert方法接受 3 个参数。第二个参数指定必须插入的值,第三个参数在位置上指定要插入的值的格式。

在您的代码中,格式参数包含 2 个值 - 即它指定前 2 个参数的格式。所有其他参数都被视为“未指定类型”,因此它们将作为字符串类型传输(可以传输所有其他类型的最常见类型),除非在 wpdb->$field_types 中另有指定.

第一个参数是'user_id' => $_POST['uid'],其格式规范是'%s',意思是“字符串”。

第二个参数是'name' => 965,其格式规范是'%d',意思是“整数”。因此,向该参数插入字符串类型值会导致转换为整数数据类型,结果为零。

就您而言,我认为根本没有必要指定数据类型。只需跳过第三个(可选)参数即可。

关于php - MySQL Text 数据类型的作用类似于 Int 数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59817235/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com