Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.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时order by str_to_date查询返回错误_Php_Mysql_Datetime - Fatal编程技术网

使用php时order by str_to_date查询返回错误

使用php时order by str_to_date查询返回错误,php,mysql,datetime,Php,Mysql,Datetime,我创建了一个查询,它在phpmyadmin上运行得非常好 SELECT *,STR_TO_DATE(horoaccess_validity_enddate , '%d-%m-%y') as horo FROM userlogin WHERE type='user' ORDER BY horo DESC 但当我在PHP上传递此查询时,返回错误,因为查询为空 我的PHP代码是 $selectorders=sprintf("SELECT *,STR_TO_DATE(horoaccess_valid

我创建了一个查询,它在phpmyadmin上运行得非常好

SELECT *,STR_TO_DATE(horoaccess_validity_enddate , '%d-%m-%y') as horo FROM userlogin WHERE type='user' ORDER BY horo  DESC
但当我在PHP上传递此查询时,返回错误,因为查询为空 我的PHP代码是

$selectorders=sprintf("SELECT *,STR_TO_DATE(horoaccess_validity_enddate , '%d-%m-%y') as hor FROM userlogin WHERE type='user' ORDER BY horo  DESC");
$myorderquery = mysql_query($selectorders) or die(mysql_error());
$row_rsselect = mysql_fetch_assoc($myorderquery);
您无缘无故地使用sprintf。由于日期格式使用“%”字符,因此如果仍要使用此函数,则需要将它们加倍:

$selectorders=sprintf("SELECT *,STR_TO_DATE(horoaccess_validity_enddate , '%%d-%%m-%%y') as hor FROM userlogin WHERE type='user' ORDER BY horo  DESC");
只要使用一个字符串声明,它就会工作。

您无缘无故地使用sprintf。由于日期格式使用“%”字符,因此如果仍要使用此函数,则需要将它们加倍:

$selectorders=sprintf("SELECT *,STR_TO_DATE(horoaccess_validity_enddate , '%%d-%%m-%%y') as hor FROM userlogin WHERE type='user' ORDER BY horo  DESC");

只要使用一个字符串声明,它就会工作。

谢谢,但返回的错误相同。如果字符串上没有可打印的变量,为什么要使用sprintf?尝试此$selectorders=SELECT*,STR_TO_DATEhoroaccess_validity_enddate,'%d-%m-%y'作为用户登录的horo,其中type='user'ORDER BY horo DESC;错误是什么?mysql PHP扩展是死的-停止使用。它很旧,从PHP5.5开始就被弃用,在PHP7.0中被完全删除。使用或代替。阅读的答案以了解更多有关原因和方式的信息。Sprintf查看第一个参数中的字符串,并将“%”前面的每个字母替换为其他参数。要么您转义%,要么您意识到您没有任何要绑定的变量,因此sprintf不可用。谢谢您,但它返回相同的错误。如果字符串上没有要打印的变量,为什么要使用sprintf?尝试此$selectorders=SELECT*,STR_TO_DATEhoroaccess_validity_enddate,'%d-%m-%y'作为用户登录的horo,其中type='user'ORDER BY horo DESC;错误是什么?mysql PHP扩展是死的-停止使用。它很旧,从PHP5.5开始就被弃用,在PHP7.0中被完全删除。使用或代替。阅读的答案以了解更多有关原因和方式的信息。Sprintf查看第一个参数中的字符串,并将“%”前面的每个字母替换为其他参数。要么您逃逸%,要么您意识到您没有任何要绑定的变量,因此sprintf是无用的