我不是PHP编程方面的专家,但我有点困惑为什么我在PHP中看到一些代码用单引号放入字符串的代码,有时用双引号.
我只知道在.NET或C语言中,如果它是单引号,这意味着它是一个字符,而不是一个字符串.
这是为了创建社区学习资源.目标是获得良好代码的示例,这些代码不会重复在复制/粘贴的PHP代码中经常出现的可怕错误.我已经要求它成为社区维基.
这不是一个编码竞赛.这不是要找到最快或最紧凑的查询方式 - 它是为新手提供一个好的,可读的参考.
每天都有大量的问题与使用Stack Overflow上的函数系列的非常糟糕的代码片段大量涌现mysql_*.虽然通常最好将这些人引向PDO,但它有时既不可能(例如继承的遗留软件)也不是现实的期望(用户已经在他们的项目中使用它).
使用该mysql_*库的代码的常见问题包括:
让我们编写一个PHP代码示例,使用mySQL_*系列函数执行以下操作:
id(数字)和name(一个字符串)tablename,name使用ID 更改行中的列idtrigger_error()就足够了; 或者使用您选择的方法$name已更新".并没有显示上面列出的任何弱点.
它应该尽可能简单.理想情况下,它不包含任何函数或类.目标不是创建一个复制/可粘贴的库,而是显示为使数据库查询安全所需要做的最少的事情.
好评如有好处.
目标是使这个问题成为用户在遇到问题提供者时可以链接到的资源(即使它根本不是问题的焦点),或者遇到错误的查询而不是知道如何解决它.
要抢先讨论PDO讨论:
是的,将这些问题的个人指向PDO往往更为可取.如果是一种选择,我们应该这样做.然而,这并不总是可能的 - 有时,提问者正在处理遗留代码,或者已经在这个库中走了很长一段路,并且现在不太可能改变它.此外,mysql_*如果正确使用,功能系列是完全安全的.所以请不要在这里"使用PDO".
一旦我花了几个小时调试一个简单的SQL查询mysql_query(),PHP/MySQL只是为了意识到我错过了关于表名的bactick.从那时起,我一直在使用表名.
但是当我使用相同SQLite/C++的符号时,符号甚至无法识别.令人困惑的是,是否使用这个?标准对使用它有什么看法?
此外,如果有人能告诉我何时使用报价,何时不能报价,将会有所帮助.我的意思是值和字段名称.