gpt4 book ai didi

php - 命中计数器sql错误

转载 作者:行者123 更新时间:2023-11-29 13:58:17 25 4
gpt4 key购买 nike

我试图让这个计数器与 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com