MySQL - “数据库查询中意外的输入字段参数


MySQL - "Unexpected input field parameter in database query."

这是代码:

<?php
function widget_hello_world($vars) {
$username = "database_user";
$password = "database_password";
$hostname = "localhost"; 
//connection to the database
$dbhandle = mysql_connect($hostname, $username, $password)
 or die("Unable to connect to MySQL");
echo "Connected to MySQL<br>";
//select a database to work with
$selected = mysql_select_db("database_name",$dbhandle)
  or die("Could not select database!");
$test1 = mysql_query("select COUNT(*) FROM Table WHERE `Status`='new'");
mysql_close($dbhandle);
    $content = '<table class="table">
<thead><tr><th style="text-align:left;">Title</th><th style="text-align:left;">Data</th></tr></thead>
<tbody>
<tr><td>Test Data 1</td><td>{$test1}</td></tr>
<tr><td>Test Data 2</td><td>{$test2}</td></tr>
<tr><td>Test Data 3</td><td>{$test3}</td></tr>
</tbody>
</table>';
    return array( 'title' => 'Hellow World', 'content' => $content );
}
add_hook("AdminHomeWidgets",1,"widget_hello_world");
?>

这是我转到该页面时收到的错误消息:

Connected to MySQL
Unexpected input field parameter in database query.

显然它正在连接到数据库,但它说查询有问题。

起初我以为问题出在这条线上:

$test1 = mysql_query("select COUNT(*) FROM Emails WHERE `Status`='new'");

但是,即使我删除了该行,同样的错误也会不断发生。 我做错了什么?

此错误似乎发生在 mysql_close($dbhandle);

但是,我还注意到保留字"Table"应该反引号以防止无效查询。也许回调例程中的某些内容是全局的并影响连接。

另外,请使用以下内容:

回显mysql_error();

以查看查询期间的任何 MySQL 错误。

尝试对所选数据库进行单独检查,例如:

 <?php $con = mysql_connect('localhost', 'root', 'mypass'); 
    $selected_db = mysql_select_db('DB Name here'); 
    if (!$selected_db) 
       { 
         die ('Database not selected : ' . mysql_error()); 
       } 
 ?>

如果显示"未选择数据库",请检查mysql_select_db()内数据库的拼写。您也可以对mysql_close();进行注释,以查看错误是否仍然存在。

另一方面,最好使用 mysqli_ mysql_因为它已被弃用,或者最好使用 PDO .