查询结果数组,每一行的列字段为字符串
query result array, each row's column field to string
我正在使用 CodeIgniter,我在我的一个模型(.php 文件)中编写了以下代码,以对匹配查询的每一行的一个列值执行 preg_split
操作。
对于上下文,我不知道如何调试这样的后端操作并且迷路/害怕炸毁数据库。问题是我不知道我是在对字符串还是数组值执行 preg_split
操作。
fruits 列的字段类型是 varchar(32)
,这是一个字符串,但是调用 $row['fruits']
真的 return 是一个纯字符串吗?
$query = $this->db->query($sql);
foreach ($query->result_array() as $row) {
// theoretically $s = 'apple banana'
$s = $row['fruits'];
// theoretically parts[0]=apple, parts[1]=banana
$parts = preg_split('/\s+/', $s);
}
在 PHP 数据库中 return 值是字符串(变体),所以 $row["fruits"]
会 return 一个字符串,即使 MySQL 数据类型是一个整数你仍然会得到一个有效的字符串。因为 PHP 不是强类型的,它会为您做很多自动转换,这意味着您可以在代码中将结果用作整数、浮点数或字符串(并且可以互换)。
最后一点注意事项:PHP 将 return (MySQL)NULL 值作为空字符串 ""
.
希望对您有所帮助!
如果您因为害怕丢失数据库而不想尝试和调试:
1) 你会经历一段糟糕的时光,所以你应该找到一种在测试时不危及数据的方法
2) 你可以尝试强制执行字符串:$s = (string) $row['fruits'];
即使它应该已经是一个字符串
我正在使用 CodeIgniter,我在我的一个模型(.php 文件)中编写了以下代码,以对匹配查询的每一行的一个列值执行 preg_split
操作。
对于上下文,我不知道如何调试这样的后端操作并且迷路/害怕炸毁数据库。问题是我不知道我是在对字符串还是数组值执行 preg_split
操作。
fruits 列的字段类型是 varchar(32)
,这是一个字符串,但是调用 $row['fruits']
真的 return 是一个纯字符串吗?
$query = $this->db->query($sql);
foreach ($query->result_array() as $row) {
// theoretically $s = 'apple banana'
$s = $row['fruits'];
// theoretically parts[0]=apple, parts[1]=banana
$parts = preg_split('/\s+/', $s);
}
在 PHP 数据库中 return 值是字符串(变体),所以 $row["fruits"]
会 return 一个字符串,即使 MySQL 数据类型是一个整数你仍然会得到一个有效的字符串。因为 PHP 不是强类型的,它会为您做很多自动转换,这意味着您可以在代码中将结果用作整数、浮点数或字符串(并且可以互换)。
最后一点注意事项:PHP 将 return (MySQL)NULL 值作为空字符串 ""
.
希望对您有所帮助!
如果您因为害怕丢失数据库而不想尝试和调试:
1) 你会经历一段糟糕的时光,所以你应该找到一种在测试时不危及数据的方法
2) 你可以尝试强制执行字符串:$s = (string) $row['fruits'];
即使它应该已经是一个字符串