Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用';在SQL语句中_Php_Mysql_Sql - Fatal编程技术网

Php 使用';在SQL语句中

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

我在做一些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("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