1
我试图开关的情况下,用户在聊天添加到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;
}
}
有至少两个不好的问题你的代码:1)你使用全局变量(我们不知道这些全局变量是否已经被使用,你应该把变量传递给函数,你应该仅在小脚本中使用全局变量2)您应该将数据库访问封装到一些类中,而不是原始的mysqli *查询。 3)'strlen($ ms_data ['text'])<0)'什么? strlen of anything can not be <0 4)学会使用var_dump($ variable)来调试一些东西 – strangeqargo
@strangeqargo我已经删除了部分代码,聊天代码上的所有内容都工作的很好,我只想添加例如,“案例”,如果用户写!帮助,他会收到回声。谢谢你的回答 – filipe
你不应该回应你想要替换的单词。只需替换它们即可'$ ms_data = preg_replace('/ 1 \ b/i','one',$ ms_data);' – DarkBee