Php 如果插入文本,则获取响应

Php 如果插入文本,则获取响应,php,Php,我正在尝试添加一个切换到ms_data['text'],以防用户在聊天中键入一些单词,但它不起作用 有人能帮我解决这个问题吗 function RegisterMessage($ms_data = array()) { global $wo, $sqlConnect; if ($wo['loggedin'] == false) { return false; } if (empty($ms_data)) { return false

我正在尝试添加一个切换到
ms_data['text']
,以防用户在聊天中键入一些单词,但它不起作用

有人能帮我解决这个问题吗

function RegisterMessage($ms_data = array()) {
    global $wo, $sqlConnect;
    if ($wo['loggedin'] == false) {
        return false;
    }
    if (empty($ms_data)) {
        return false;
    }
    if (empty($ms_data['text']) || !isset($ms_data['text']) || strlen($ms_data['text']) < 0) {
        if (empty($ms_data['media']) || !isset($ms_data['media']) || strlen($ms_data['media']) < 0) {
            return false;
        }
    }

    if (isset($ms_data['text'])) {
    switch ($ms_data['text']]) {
        case '1':
            echo "one";
            break;
        case '2':
            echo "two";
            break;
        case '3':
            echo "three";
            break;
        }
    }

    $fields = '`' . implode('`, `', array_keys($ms_data)) . '`';
    $data   = '\'' . implode('\', \'', $ms_data) . '\'';
    $query  = mysqli_query($sqlConnect, " INSERT INTO " . T_MESSAGES . " ({$fields}) VALUES ({$data})");
    if ($query) {
        $message_id = mysqli_insert_id($sqlConnect);
        return $message_id;
    } else {
        return false;
    }
}
函数注册表消息($ms\u data=array()){
全局$wo,$sqlConnect;
如果($wo['loggedin']==false){
返回false;
}
if(空($ms_数据)){
返回false;
}
if(空($ms_数据['text'])| |!isset($ms_数据['text'])| | strlen($ms_数据['text']))<0){
if(空($ms_数据['media'])isset($ms_数据['media']))| strlen($ms_数据['media'])小于0){
返回false;
}
}
如果(isset($ms_数据['text'])){
开关($ms_数据['text']])){
案例“1”:
呼应“一”;
打破
案例“2”:
呼应“两个”;
打破
案例“3”:
呼应“三个”;
打破
}
}
$fields='''''''。内爆(''''',数组_键($ms_数据))'''';
$data='\''。内爆('\','''.$ms\U data)。'\'';
$query=mysqli_query($sqlConnect,“插入到“.T_消息中。”({$fields})值({$data})”);
如果($query){
$message\u id=mysqli\u insert\u id($sqlConnect);
返回$message\u id;
}否则{
返回false;
}
}

您的交换机不工作,因为您有和额外的']':

替换:

switch ($ms_data['text']]) {
作者:


您的代码至少有两个问题:1)您使用的是全局变量(我们不知道这些全局变量是否已经被使用,您应该将变量传递给函数,您应该只在小脚本中使用全局变量2)您应该将数据库访问封装到某个类,而不是原始的mysqli*查询。3)
strlen($ms_data['text'])<0)
what?任何东西的strlen都不能<0 4)学会使用var_dump($variable)进行调试something@strangeqargo我已经删除了部分代码,关于聊天代码的一切都很好,我只想添加“case”,例如,如果用户写!他将得到回音。谢谢你的回答。你不应该重复你想替换的词。只需替换它们,例如,
$ms_data=preg_replace('/1\b/i','one',$ms_data)
switch ($ms_data['text']) {