【发布时间】:2013-06-12 12:09:52
【问题描述】:
很棒的网站,我遇到了一个我自己解决的简单问题(我确定),但我称我的修复是一个问题,而不是一个真正的解决方案,所以我在这里要求一个真正的答案。
我有下面的 $sql 字符串在 PHP 中将一些简单的数据写入 mysql 数据库:-
$sql="INSERT INTO $db_name.$tbl_name (`game_id` ,`user_id` ,`scores`) VALUES (NULL , $session_id, $scores_csv)";
$scores_csv 包含类似 '60,90,45,26,41,80' 但上面的代码不起作用?如果我用以下代码替换上面的代码,它将起作用:-
$sql="INSERT INTO $db_name.$tbl_name (`game_id` ,`user_id` ,`scores`) VALUES (NULL , $session_id, '60,90,45,26,41,80')";
我在第一个代码示例中回显出 $sql 和逗号分隔列表的字符串不包含单引号,但在第二个代码示例中包含单引号,使其工作。
所以它接缝虽然它是一个字符串,如果我不包含单引号,有一个数据库不匹配并且数据没有被存储。
如果我在将 $scores_csv 变量发送到 MYSQL 之前用单引号将其括起来,那么它确实可以工作,但肯定有更好的解决方案,我如何告诉 Mysql 我的字符串是文本字符串,而不是一堆数字,我确定它很简单,但我以前没有遇到过。
谢谢保罗
【问题讨论】:
-
你告诉Mysql我的字符串是一个文本字符串,用引号括起来,否则它把它看作一个值列表
-
啊,谢谢,我知道这会很简单,谢谢,现在可以正常工作了.. 干杯保罗
-
我无法在已经给出的答案中添加任何内容,但是您在表中存储逗号分隔列表这一事实向我表明您的架构可能需要访问,因为它可能不是最好的适合您的问题,而无需了解有关该应用程序的更多信息。
-
嗨马丁,我可以将每个数字存储在自己的行中,然后使用循环,但根据我的需要,这条接缝是最快和最简单的路线,更不用说应该更容易服务器负载。