gpt4 book ai didi

PHP 准备语句 -> 仅返回数据库中列的第一个字母

转载 作者:搜寻专家 更新时间:2023-10-31 20:40:10 26 4
gpt4 key购买 nike

我有这个代码

        $sql = "SELECT name FROM data WHERE id=? LIMIT 0,1";
//prepares statement
$stmt = self::getConnection()->prepare($sql);
$stmt->bind_param("i", $id);
$ids = array(1,2,3);
foreach ($ids as $key => $id) {
$stmt->execute();
$stmt->bind_result($name);
$stmt->fetch();
$stmt->store_result();

var_dump($name);
}

我的数据库表是这样的

id | name
1 | First Name
2 | Second Name
3 | Third Name

现在输出看起来像这样:

string(10) "First Name" 
string(1) "S"
string(1) "T"

名字是正确的。但随后它只输出以下行的第一个字母。我不知道为什么。我用另一列整数类型进行了尝试。那奏效了。只是这个字符串类型的列没有。

我还尝试将 $ids-Array 更改为如下所示:$ids = array(2,3,1)。然后输出

string(11) "Second Name" 
string(1) "T"
string(1) "F"

我不知道该怎么办。有人看到我的错误吗?

编辑:

PHP 5.5 和 Mysql 5.5.31 和 var_dump:

编辑 2:

-- phpMyAdmin SQL Dump
-- version 4.0.5
-- http://www.phpmyadmin.net
--
-- Host: rdbms
-- Erstellungszeit: 07. Jun 2014 um 19:21
-- Server Version: 5.5.31-log
-- PHP-Version: 5.3.27

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

--
-- Datenbank: `DB1673555`
--

-- --------------------------------------------------------


CREATE TABLE IF NOT EXISTS `data` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` tinytext NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ;


INSERT INTO `data` (`id`, `name`) VALUES
(1, 'First Name'),
(2, 'Second Name'),
(3, 'Third Name');

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

我刚刚看到转储说我使用 PHP 5.3。但是在 strato 的网站上他们说 5.5

最佳答案

这是我发现的。我认为这是 tinytext 类型的原因。因为当我使用您的数据库转储时,错误会在我的本地 PC 上重现。但是,只要我将列类型更改为 varchar 255,代码就可以正常工作。

关于PHP 准备语句 -> 仅返回数据库中列的第一个字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24098872/

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