Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/253.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 Mysql查询语法问题_Php_Mysql_Joomla - Fatal编程技术网

Php Mysql查询语法问题

Php Mysql查询语法问题,php,mysql,joomla,Php,Mysql,Joomla,有人能告诉我我的sql查询sintax有什么问题吗 在mysql上是否有任何方法可以获得查询的确切错误 <?php // If the constant _JEXEC is not defined, quit now. // This stops this script from running outside of the system. defined( '_JEXEC' ) or die( 'Restricted access' ); ?> <script typ

有人能告诉我我的sql查询sintax有什么问题吗

在mysql上是否有任何方法可以获得查询的确切错误

    <?php
// If the constant _JEXEC is not defined, quit now.
// This stops this script from running outside of the system.
defined( '_JEXEC' ) or die( 'Restricted access' );
?>
<script type="text/javascript" language="javascript">
function proceed()
{
check = document.getElementById('checkToProceed');
proceedButton = document.getElementById('proceedButton');

if (check.checked)
{
proceedButton.disabled = false;
}
else
{
proceedButton.disabled = true;
}
}
</script>

<?php


if ($_POST['proceedButton'] != '') { 
$user = JFactory::getUser(); 
$id = $user->get('id'); 
$name = $user->get('name');
$username = $user->get('username'); 
$department = $user->get('department'); 
$vardate = date("m/d/y : H:i:s", time()); 
$acknowledge = 1;
$courseTitle = $mainframe->getPageTitle(); 


/***************************************/

$db = &JFactory::getDBO();
$query = "INSERT INTO `jos_jquarks_users_acknowledge`(course_name)VALUES('hello')";
$db->setQuery($query);

$db->query();

echo mysql_error ();


if($db->getErrorNum()) { 
   JError::raiseError( 500, $db->stderr()); 
} 

}
?>
<form name="quiz_info" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">

<input type="checkbox" id="checkToProceed" name="checkToProceed" onclick="proceed();" />

<label for="checkToProceed">

<?php echo JText::_('I have Read and Acknowledge the procedure'); ?>

</label>

<input id="proceedButton" name="proceedButton" disabled="true" value="Acknowledge" type="submit" />

<input type="hidden" name="layout" value="default" /> <?php echo JHTML::_( 'form.token' ); ?>

</form>

函数继续()
{
check=document.getElementById('checkToProceed');
proceedButton=document.getElementById('proceedButton');
如果(勾选,勾选)
{
proceedButton.disabled=false;
}
其他的
{
proceedButton.disabled=true;
}
}

没有错误和表结构是有点困难,但

可能您正试图将int数据类型作为字符串插入,例如user_id。请在使用数值时删除“”,因为它们不是字符串

例如:

INSERT INTO table_name
(id_field, string_field)
VALUES
({$id_value}, '{$string_value}');

没有错误和表结构是有点困难,但

可能您正试图将int数据类型作为字符串插入,例如user_id。请在使用数值时删除“”,因为它们不是字符串

例如:

INSERT INTO table_name
(id_field, string_field)
VALUES
({$id_value}, '{$string_value}');

我想可能有几件事,但“acknowledge”有一个拼写错误。在INSERT的列列表中,以及在
INSERT
语句中使用的变量中,它拼写错误。当您指定该变量时,它的拼写是正确的


编辑:在与OP的聊天中完成了此操作。问题是此代码被用作Joomla文章中的一个片段。表单的帖子必须转到
$\u服务器['REQUEST\u URI']
才能发回正确的位置。

我认为可能有几件事,但“acknowledge”有拼写错误。在INSERT的列列表中,以及在
INSERT
语句中使用的变量中,它拼写错误。当您指定该变量时,它的拼写是正确的

编辑:在与OP的聊天中完成了此操作。问题是此代码被用作Joomla文章中的一个片段。表单的帖子必须转到
$\u服务器['REQUEST\u URI']
才能发回正确的位置。

mysqli\u error()或mysql\u error()。

mysqli\u error()或mysql\u error()。

mysql\u error
()将从数据库返回最后一个错误

顺便说一下,您的代码将执行两次查询。只能使用一个对
$db->query()
的调用

至于什么,如果有什么不对劲,那很难说。我没有看到任何明显的错误,但我确实想知道如何转义查询中使用的值。请参阅文档-如果这些值中的任何一个包含撇号,您的查询将被中断

我还看到一个拼写错误,“acknoledge”拼写为“acknowledge”,因此,如果数据库中的字段拼写正确,那么查询中将出现拼写错误的问题。同样,您的一些字段使用
下划线
,而有些字段使用
camelCase
名称。你只是在乞求像这样的打字错误。使用一种或另一种命名约定,并保持一致。如果您的字段名为
employeeNumber
,并且您使用
employee\u number
employeeNumber
,则查询将失败。选择一个命名约定并坚持它,这样您就不会在每次编写查询时都猜测了

mysql\u error
()将返回数据库中的最后一个错误

顺便说一下,您的代码将执行两次查询。只能使用一个对
$db->query()
的调用

至于什么,如果有什么不对劲,那很难说。我没有看到任何明显的错误,但我确实想知道如何转义查询中使用的值。请参阅文档-如果这些值中的任何一个包含撇号,您的查询将被中断


我还看到一个拼写错误,“acknoledge”拼写为“acknowledge”,因此,如果数据库中的字段拼写正确,那么查询中将出现拼写错误的问题。同样,您的一些字段使用
下划线
,而有些字段使用
camelCase
名称。你只是在乞求像这样的打字错误。使用一种或另一种命名约定,并保持一致。如果您的字段名为
employeeNumber
,并且您使用
employee\u number
employeeNumber
,则查询将失败。选择一个命名约定并坚持它,这样您就不会在每次编写查询时都猜测了

使用

使用

-1-在数字字段周围加引号,虽然可能不合理,但不会导致错误。我想我可以使用以下方法进行故障排除:
如果($Db->getErrorNum()){JError::raiseError(500,$Db->stderr());}
但不会引发错误,除非发布到另一页,我被重定向到站点主页,这就是为什么我看不到错误?-1-数字字段周围的引号,虽然可能不合理,但不会导致错误。我想我可以使用以下方法进行故障排除:
if($Db->getErrorNum()){JError::raiseError(500,$Db->stderr());}
但不会引发错误,除非是发布到另一个页面,否则我会被重定向到站点主页,这就是为什么我看不到错误?这是可能的,但值得指出。不管怎样,变量名在设置时拼写正确,但在使用时拼写不正确。我更改并检查了变量和表列,它们现在拼写正确,但这并没有解决问题,我添加了if($Db->getErrorNum()){JError::raiseError(500,$Db->stderr());}但是在显示错误之前,页面似乎正在重定向。您确定生成了错误吗?您是否验证了
proceedButton
的值不是空的?如果是,则不会命中任何数据库代码。我只是更新了完整的代码,删除了所有值,并尝试插入一个简单的字符串进行测试。。但是没有插入任何内容,我可能遗漏了一些东西,这些东西让我相信你的
声明失败了。我将查找
checkToProceed的值,而不是检查
proceedButton
的值<