ai didi

php - PHP单引号、双引号和Mysql查询

转载 作者:行者123 更新时间:2023-11-29 05:33:09 24 4
gpt4 key购买 nike

我正在使用类似

的语法
$query  = "SELECT * FROM contacts WHERE contact_id = $id";

经常有效,但经常无效。那么如果我使用

$query  = 'SELECT * FROM contacts WHERE contact_id = "'.$id.'";

然后就可以了。哪一个是正确的方法??

最佳答案

事实上,在编写 SQL 查询时,这些语法都不是是最好的。

如果您正在编写 SQL 查询,最好使用参数化查询来编写它,如下所示:

$query = 'SELECT * FROM contacts WHERE contact_id = ?';
$prep = $mysqli->prepare($query); //prepares the query for action
$prep->bind_param("i", $id); //inserts the $id variable into the '?' as an integer value.

...或使用 PDO 库的类似方法。

以这种方式进行查询将使您的查询更加安全。

请注意,如果您使用的是旧式 mysql_xx() 函数(不支持这种代码风格),这些函数将被视为过时且不安全,将来会被删除版本的PHP。您应该尽快停止使用它们。 (有关这方面的更多信息,请参阅 PHP 手册)

从问题中不清楚您是在询问字符串语法还是查询编写风格。上面的内容有助于编写查询,也可以避免字符串语法问题,但如果您仍然想了解字符串语法问题,我也会继续讨论有关该主题的一些想法......

两种语法都完全有效。简短的回答是无论哪种方式都可以,所以在任何给定的代码中选择最适合您的方式。

您提到您的第一个语法“经常不起作用”。如果您能对此进行详细说明,将会很有帮助,因为它是完全有效的 PHP 语法。

它可能失败的原因是,如果您有其他词连接到变量名称(如 PHP),或者您试图使用数组元素作为变量。在这种情况下,您应该像这样将变量名括在大括号中:

$string = "this is a string with a {$variable} in it";

事实上,这在所有情况下都有效(并且当您在字符串中使用变量时也有助于使它更清晰),因此最好一直这样做。

有人会说使用单引号对性能更好。它是......但差异非常小,事实上,当你连接很多变量时,它变得更小。老实说,如果他们担心这种事情对他们来说是个问题,那么他们就不应该使用像 PHP 这样的解释型语言。

关于php - PHP单引号、双引号和Mysql查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12997094/

24 4 0
文章推荐: ios swift UILabel 字体大小不会以编程方式更改
文章推荐: php - 将用户密码发送到他的电子邮件...使用 php
文章推荐: java - Struts2 ValueStack 如何处理多个请求
文章推荐: php - 我可以使用组连接的 2 种组合吗?或者我应该使用子查询
行者123
个人简介

我是一名优秀的程序员,十分优秀!

滴滴打车优惠券免费领取
滴滴打车优惠券
全站热门文章
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com