我目前正在开发一个项目,而不是使用常规的MySQL查询,我认为我会继续学习如何使用PDO.
我有一个名为参赛者的桌子,数据库,桌子和所有栏目都在utf-8中.我在参赛者表中有十个参赛作品,他们的专栏"名称"包含åäö等人物.
现在,当我从数据库中获取一个条目,并且var_dump名称时,我得到一个好结果,一个包含所有特殊字符的字符串.但我需要做的是按字符分割字符串,将它们放入一个我随后洗牌的数组中.
例如,我有这个字符串: 测试ÅÄÖTåän
当我运行str_split时,我会在数组中获取它自己的键中的每个字符.唯一的问题是所有特殊字符都显示为: ,表示数组将如下所示:
Array
(
[0] => T
[1] => e
[2] => s
[3] => t
[4] =>
[5] => ?
[6] => ?
[7] => ?
[8] => ?
[9] => ?
[10] => ?
[11] =>
[12] => T
[13] => ?
[14] => ?
[15] => ?
[16] => ?
[17] => n
)
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,它不仅会弄乱角色,而且还会在str_split进程中复制它们.我已经尝试了几种方法来分割字符串,但它们都有相同的问题.当我在分割之前输出字符串时,它会显示特殊字符.
这是我的dbConn.php代码:
//需要配置文件:require_once('config.inc.php');
// Start PDO connection:
$dbHandle = new PDO("mysql:host=$dbHost;dbname=$dbName;charset=utf-8", $dbUser, $dbPass);
$dbHandle -> exec("SET CHARACTER SET …Run Code Online (Sandbox Code Playgroud) 有标准的AZ,az字符,但也有连字符,em破折号,引号等.
此外,还有所有的国际角色,如变形金刚等.
那么,对于基于英语的系统,完整的设置是什么?那些其他语言的集合呢?UTF8,UTF16等怎么样?
奖金问题:需要多少名称字段,以及它们的最大长度是多少?
编辑:人名中肯定有两种不同类型的字符,那些作为上下文的一部分,以及那些由于结构原因而存在的字符.我不想限制或干扰上下文字符,但我确实需要处理结构上的字符.
例如,我有一个名字,它被一个em破折号分开,但是很难将它与减号区分开来.为了使系统更容易搜索,我想采用所有五种不同类型的破折号,并将它们映射到一个唯一字符(减号),这样搜索者就不需要具体知道最初输入的符号.
破折号也存在问题,可能还有引号,还有多少其他符号?
我正在学习pdo中的pdo,以便使数据库访问更容易和更有效.我读过fetch _class的一个解释是你的对象的属性是在调用构造函数之前设置的.这是什么意思?任何方向都非常感谢.
我想检索数据库中插入行的id,但我不知道如何做到这一点.
我试图使用SQL子句返回RETURNING id,但不起作用.
如何在插入行后返回id?
昨天我的代码工作正常,今天它突然只是不想连接到我的数据库.我没有更改它或代码上的设置,我也没有更新任何软件.我所做的就是:
__CODE__
我收到一条很好的异常消息说:
__CODE__
问题是:我显然没有尝试使用unix socket连接,而是使用TCP/IP.我究竟做错了什么?这里有什么我想念的吗?
谢谢你的帮助.
在目标C中有if-else语句的简短语法,如PHP:
if($value)
return 1;
else
return 0;
Run Code Online (Sandbox Code Playgroud)
较短的版本:
return $value?1:0;
Run Code Online (Sandbox Code Playgroud) 我一直在努力让AJAX与Jquery一起工作.到目前为止我的大问题是我真的不知道如何弄清楚我犯了什么错误.我没有一个很好的方法来调试AJAX调用.
我正在尝试设置一个管理页面,其中我想要做的一个功能是更改我的SQL数据库中的权限集.我知道.click函数正在被触发,所以我把它缩小了,但是我不确定从AJAX调用SQL查询到哪里出错了.
我的.js代码:
$('#ChangePermission').click(function(){
$.ajax({
url: 'change_permission.php',
type: 'POST',
data: {
'user': document.GetElementById("user").value,
'perm': document.GetElementById("perm").value
}
})
})
Run Code Online (Sandbox Code Playgroud)
我的.php处理程序:
<?php
require_once(functions.php);
echo $_POST["user"];
try{
$DBH = mysql_start();
$STH = $DBH->prepare("INSERT INTO people ( username, permissions ) values (?, ?)");
$STH->bindParam(1, $_POST["user"]);
$STH->bindParam(2, $_POST["perm"]);
$STH->execute();
}
catch(PDOException $e){
echo $e->getMessage;
}?>
Run Code Online (Sandbox Code Playgroud)
mysql_start是为我在其他SQL调用中成功使用的PDO函数设置的.
我已经研究和查找教程几天了,我不能为我的生活弄清楚出了什么问题.我可以使用工具找出错误发生的位置吗?我显然对这个特定问题的答案很感兴趣,但我认为我的更大问题是我不知道从哪里开始调试.谢谢你的帮助!
我用MySQL试过这个:
DELETE FROM `contact_hostcommands_relation` AS `ContactHostCommand` WHERE (`ContactHostCommand`.`chr_id` = 999999) LIMIT 1
Run Code Online (Sandbox Code Playgroud)
我得到了这个:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE (`ContactHostCommand`.`chr_id` = 999999) LIMIT 1' at line 1
Run Code Online (Sandbox Code Playgroud)
注意:此查询是自动生成的,条件基于表别名.
为什么我会收到此错误?
有没有办法在where子句中使用表别名?
这个MySQL是否具体?
在Ci中,我有以下功能.如何测试成功插入的查询没有错误?
public function postToWall() {
$entryData = $this->input->post('entryData');
$myChurchId = $this->session->userdata("myChurchId");
$this->db->query("INSERT IGNORE INTO wallPosts (entryData, entryCreationDateTime, wpChurchId)
VALUES('$entryData', NOW(), '$myChurchId')");
}
Run Code Online (Sandbox Code Playgroud) 我有两个mysql表,它们都有一个共同的typeID.我想从这两个表中选择具有相同typeID的所有内容,查询如下:
SELECT ta.requiredTypeID, ta.typeID, ta.quantity
FROM `invtypes` as t, `typeactivitymaterials` as ta
WHERE volume > 0 AND t.typeID = ta.typeID;
Run Code Online (Sandbox Code Playgroud)
这给了我正确的结果,但我试图将此查询导出为插入语句.我已经尝试添加INTO OUTFILE"/ path /"但这只是将数据导出为制表符/逗号分隔数据,是否可以将此数据导出为insert语句?
干杯
EEF
php ×6
mysql ×5
pdo ×2
syntax ×2
ajax ×1
alias ×1
character ×1
codeigniter ×1
export ×1
if-statement ×1
ios ×1
javascript ×1
jquery ×1
mysqli ×1
names ×1
objective-c ×1
sql ×1
string ×1
utf-8 ×1