php - 命中计数器sql错误

标签 php mysql sql arrays

我试图让这个计数器与 pdo 一起使用,但它一直提示解析错误:

syntax error, unexpected '(', expecting identifier (T_STRING) or variable (T_VARIABLE) or '{' or '$' in line 37.

我不确定这是否是索引,因为我的数据库名称是 group2,其中有一个表计数器和一个名为 counter 的列。我也尝试过使用 mysql 过程方法,但我对这两种方法都不够熟悉,而且我使用的每个指南仍然会出现这些错误。我做错了什么。

*编辑新代码:

<?php
try
{
$dsn = "mysql:host=xxxxxxxxxxxxxx"; // Missing semi colon (;)
$conn = new PDO($dsn,'group2', 'xxxxxxxxxxxx');  //connection
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch(PDOexception $e)
{
Print($e->getMessage());
Exit;
}


$sql = ("SELECT * FROM counter");
$conn->query($sql);
$row = $conn->query($sql);
$counter =$row['counter'];

if(empty($counter))
{

$counter = 1; 
$insert = $conn->query("INSERT INTO counter VALUES('$counter')");  
}

$add= $counter+1;
$insertNew = $conn->("UPDATE counter SET counter = '$add'"); 
echo $counter;

?>


<?php $conn = null; ?>

最佳答案

您的代码有很多错误。

  1. 没有函数 mysqle_select_db()。有一个名为 mysql_select_db(),但由于您使用的是 PDO,您可能想要使用 $conn->query('use group2')(如果有的话) .
  2. 您正在使用尚未设置的变量运行查询。 $conn->query($sql); 仅往下两行是行不通的。
  3. 方括号在表名称中无效,+ 也不是有效的查询列。 SELECT + FROM counter[counter] 根本不起作用。您可能打算执行SELECT * FROM counter
  4. 您的查询不会返回任何内容,但我很确定它不会返回 counter[counter] 列。你可能只想做 $counter=$row['counter']; (是的,你可以欺骗 MySQL 在列名中使用方括号,但这很可能不是这里的意图)
  5. 最后但并非最不重要的一点是,您的 UPDATE 查询不仅发出两次(一次使用 PDO,一次通过 mysql_* lib),而且还是错误的。它很可能应该是 $insertNew = $conn->("UPDATE counter SET counter = '$add'");,假设您的 counter 表有一个 计数器列。

编辑:

通过一些小细节,您的脚本看起来不错。

  1. 您可能不应该发布您的数据库密码。
  2. 您的一个数据库查询没有做太多事情:$conn->query($sql); - 您在下一行再次执行此操作。
  3. 您的计数器将从 2 而不是 1 开始,因为您在插入后进行更新(UPDATE 不在 if 语句的 else 部分中,因此它会在所有情况下运行)

如果它仍然不起作用,您应该尝试将 echo/print_r/var_dump 语句放入代码中以查看它在哪里损坏 - 例如:

print_r($conn->errorInfo()); 将为您提供有关 PDO 内部错误的信息。 echo "$counter"; 将为您提供选择的结果。

print_r($conn->errorInfo());

关于php - 命中计数器sql错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15465711/

相关文章:

php - 在 PHP 或 MySQL 中查找两个日期之间的差异

php语法错误如果条件

c# - .NET 开发人员在使用 MYSQL 后端时需要知道的事情

mysql - 树输出mysql

sql - 如何避免分页计数和数据检索的多次查询?

PHP 重定向回上一页

php - PHP 和 jQuery 中检测移动设备和提供页面的标准实践

sql - 帮助将 SQL 嵌套子查询转换为 mysql 4.0 兼容性的连接查询

php - 在网站上使用Facebook登录并获取用户ID

MySQL:使用 group by 选择并除以计数