Php 使用';在SQL语句中
我在做一些php; 我发现下面的代码可以工作Php 使用';在SQL语句中,php,mysql,sql,Php,Mysql,Sql,我在做一些php; 我发现下面的代码可以工作 function get_total_urls() { $total = mysql_query('SELECT COUNT(`url_key`) FROM `urls`'); return (int)mysql_result($total, 0); } get_total_urls(); 但下面的代码显示了警告 function get_total_urls() { $total = mysql_query
function get_total_urls() {
$total = mysql_query('SELECT COUNT(`url_key`) FROM `urls`');
return (int)mysql_result($total, 0);
}
get_total_urls();
但下面的代码显示了警告
function get_total_urls() {
$total = mysql_query("SELECT COUNT('url_key') FROM 'urls'");
return (int)mysql_result($total, 0);
}
get_total_urls();
显示以下警告:
警告:mysql_num_rows()期望参数1是给定的资源
请帮忙;为什么第二个代码显示警告,但第一个代码正常?第二个代码无法从数据库表中获取“url\u key”的计数
有没有办法在没有反勾号的情况下编写第一个代码,它就能完美地工作?这两个代码是不同的
反勾号
用于表和列标识符
和你的例子一样;其中,url\u key
是列名,url
是表名
$total = mysql_query('SELECT COUNT(`url_key`) FROM `urls`');
但是,只有当标识符为a时,或者当标识符包含空格字符或超出有限集的字符时,反勾号才有必要
通常建议尽可能避免使用保留关键字作为列或表标识符,以避免引用问题
“单引号”应用于字符串值,如insert语句中的values()
列表
例:
MySQL还希望DATE
和DATETIME
文本值以字符串形式引用,如'2001-01-01 00:00:00'
MySQL对字符串值也支持双引号,但单引号更广泛地被其他RDBMS接受,因此使用单引号而不是双引号是一个好习惯
请通过类似示例查找有关此问题的更多说明:
两种代码都不同
反勾号
用于表和列标识符
和你的例子一样;其中,url\u key
是列名,url
是表名
$total = mysql_query('SELECT COUNT(`url_key`) FROM `urls`');
但是,只有当标识符为a时,或者当标识符包含空格字符或超出有限集的字符时,反勾号才有必要
通常建议尽可能避免使用保留关键字作为列或表标识符,以避免引用问题
“单引号”应用于字符串值,如insert语句中的values()
列表
例:
MySQL还希望DATE
和DATETIME
文本值以字符串形式引用,如'2001-01-01 00:00:00'
MySQL对字符串值也支持双引号,但单引号更广泛地被其他RDBMS接受,因此使用单引号而不是双引号是一个好习惯
请通过类似示例查找有关此问题的更多说明:
这是您的声明:
$total = mysql_query('SELECT COUNT(`url_key`) FROM `urls`');
在MySQL中,反勾号用于分隔标识符——当它们与保留字冲突或包含不合适的字符(如空格、句点、逗号等)时。因为最好使用不与保留字冲突且不包含不恰当字符的标识符,所以很少需要反勾号
你可以写:
$total = mysql_query('SELECT COUNT(url_key) FROM urls');
单引号只能用于字符串和日期常量。不要将它们用作标识符,它们只会导致混淆。毫无疑问,您已经注意到。这是您的声明:
$total = mysql_query('SELECT COUNT(`url_key`) FROM `urls`');
在MySQL中,反勾号用于分隔标识符——当它们与保留字冲突或包含不合适的字符(如空格、句点、逗号等)时。因为最好使用不与保留字冲突且不包含不恰当字符的标识符,所以很少需要反勾号
你可以写:
$total = mysql_query('SELECT COUNT(url_key) FROM urls');
单引号只能用于字符串和日期常量。不要将它们用作标识符,它们只会导致混淆。你肯定注意到了。这就是撇号和反勾号的区别。在MySQL中,这意味着。。。反勾号描述标识符,而撇号标记字符串。这两个查询完全不同。对静态字符串和反勾号使用“
来转义表和列名称MySQL在分隔符方面也有自己的方法。这就是撇号和反勾号之间的区别。在MySQL中,这意味着。。。反勾号描述标识符,而撇号标记字符串。这两个查询完全不同。使用“
对静态字符串和反勾号转义表和列名称MySQL在分隔符方面也有自己的方法…尽管您可能不应该使用不推荐使用的API…尽管您可能不应该使用不推荐使用的API