简体   繁体   English

PHP中的SQL SELECT语句

[英]SQL SELECT statement in PHP

Which one is correct? 哪一个是正确的?

Having trouble with single quotes vs double quotes in PHP and using Oracle 11g db... 在PHP中使用单引号和双引号以及使用Oracle 11g数据库时遇到麻烦...

<?php 
$query1  = oci_parse($conn, 'SELECT * FROM SCHEMA.TABLE_A WHERE B_ID=' . $id);
$query1  = oci_parse($conn, "SELECT * FROM SCHEMA.TABLE_A WHERE B_ID='" . $id . "'");
?>

If id is numeric, you should not quote the value. 如果id是数字,则不应引用该值。 If it's a character string, you should. 如果是字符串,则应该这样做。

Regardless, using string manipulation to create an SQL statement is usually a bad practice that leaves your application vulnerable to SQL injection attacks. 无论如何,使用字符串操作创建SQL语句通常是一种不好的做法,这会使您的应用程序容易受到SQL注入攻击的攻击。 Instead, you should use a prepared statement: 相反,您应该使用准备好的语句:

$query1 = oci_parse($conn, 'SELECT * FROM SCHEMA.TABLE_A WHERE B_ID=:id');
oci_bind_by_name($query1, ":id", $id);
oci_execute($query1);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM