首页 / PHP / 在PHP中准备SQLite SQL语句
在PHP中准备SQLite SQL语句
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了在PHP中准备SQLite SQL语句,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1734字,纯文字阅读大概需要3分钟。
内容图文
我正在尝试如何最好地在PHP中准备我的SQLite SQL字符串. SQLite3类附带了一个escapeString()函数,但这是我的问题:
尝试1)
$sql = "INSERT INTO items ('id','content','title','created') VALUES ('4e7ce7c18aac8', 'Does this work', NULL, '2011-09-23T16:10:41-04:00');";
$sql = SQLite3::escapeString( $sql );
echo ($sql);
这导致一个字符串全部被抬起:
INSERT INTO items (”id”,”content”,”title”,”created”) VALUES
(”4e7ce7c18aac8”, ”Does this work”, NULL,
”2011-09-23T16:10:41-04:00”);
这些不是双引号,而是双引号单引号.显然不行.
尝试2)
$sql = 'INSERT INTO items ("id","content","title","created") VALUES ("4e7ce7c18aac8", "Does this work", NULL, "2011-09-23T16:10:41-04:00");';
$sql = SQLite3::escapeString( $sql );
echo ($sql);
这导致:
INSERT INTO items (“id”,”content”,”title”,”created”) VALUES
(“4e7ce7c18aac8”, “Does this work”, NULL,
“2011-09-23T16:10:41-04:00”);
这个查询工作正常,但是escapeString函数没有修改任何东西,因为没有什么可以逃脱的……
尝试3)
$sql = 'INSERT INTO items ("id","content","title","created") VALUES ("4e7ce7c18aac8", "Doesn't this work", NULL, "2011-09-23T16:10:41-04:00");'; $sql = SQLite3::escapeString( $sql ); echo ($sql);
这是一个大问题 – 现在我的一个值中有一个撇号.它甚至不会使它成为escapeString()因为PHP将在无效字符串上抛出错误:
PHP Parse error: syntax error, unexpected T_VARIABLE, expecting ‘,’
or ‘;’
我该怎么接近这个?请记住,在实际代码中,我的参数值将是变量,所以我应该在将每个变量传递给字符串之前将其转义?如果是这样,我会使用什么功能?
最后,escapeString()有什么意义?我无法弄清楚应该如何正确使用它.
解决方法:
您无法转义整个查询.您可以转义要插入查询的不安全数据,例如
$unsafe = $_GET['nastyvar'];
$safe = SQLite3::escapeString($unsafe);
$sql = "INSERT INTO table (field) VALUES ($safe);";
echo ($sql);
内容总结
以上是互联网集市为您收集整理的在PHP中准备SQLite SQL语句全部内容,希望文章能够帮你解决在PHP中准备SQLite SQL语句所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。