我已经定义了变量$row_id1(例如$row_id1=1;)
mysql中有一列名为Number。
要选择列号,如果列中存在$row_id,则要获取(获取、定义)值。实际上要检查列中的编号是否存在$row\U id值。
代码有什么问题?
$stmt = $db->prepare("SELECT Number FROM 2_1_journal WHERE Number = :Number1");
$stmt->bindParam(':Number1', $row_id1); //value from $_POST
$stmt->execute();
$Number1 = $stmt->fetchAll(PDO::FETCH_ASSOC); // seems here something is wrong
echo $Number1 .' $Number1<br>';
在输出中,我得到数组$Number1
似乎简单(愚蠢)的问题,但寻找了几个小时,没有解决办法
更新代码
本部分与问题无关(仅供参考)
require($_SERVER['DOCUMENT_ROOT'] . "/_additionally_protected/session.class.php");
$session = new session();
// Set to true if using https
$session->start_session('_a', false);
session_regenerate_id();
//require($_SERVER['DOCUMENT_ROOT'].'/_additionally_protected/request_blocker.php'); //slow page load
require($_SERVER['DOCUMENT_ROOT'].'/_measure_time_start.php');
require($_SERVER['DOCUMENT_ROOT'].'/_additionally_protected/db_config.php');
header('Content-type: text/html; charset=utf8');
require($_SERVER['DOCUMENT_ROOT'] . "/only_private/blackhole.php");
ini_set('session.bug_compat_warn', 0);
ini_set('session.bug_compat_42', 0);
这与问题有关(这里我从输入中获取值)
if(get_magic_quotes_gpc())
$row_id1 = htmlspecialchars(stripslashes($_POST['row_id1']));
else
$row_id1 = htmlspecialchars($_POST['row_id1']);
echo $row_id1 .' row_id1 from $_POST<br>';
连接到mysql
try {
$db = new PDO("mysql:host={$dbhost};dbname={$dbname};charset=utf8", $dbuser, $dbpass//, array(PDO::ATTR_EMULATE_PREPARES => false, PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
, array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
//echo "Connected to database"; // check for connection
}
catch(PDOException $ex) {
//echo "An Error occured!"; //user friendly message
//print "Error!: " . $ex->getMessage() . "<br/>";
//some_logging_function($ex->getMessage());
exit;
}
这里我从mysql得到最后一行号。后面我把数字1传递给html隐藏的iput字段。我的意思是在页面加载我得到最后一个数字。如果用户点击按钮,则不执行代码。
//fetch last Number to pass to row_id and entry_id
if( !$_POST['register'] ) {
echo '!$_POST[register] <br>';
//+++++++++++++ now multiple PDO
// Select table with query
$stmt = $db->query("
SELECT Number FROM 2_1_journal ORDER BY Number DESC LIMIT 1
");
// Set fetching mode
$stmt->setFetchMode(PDO::FETCH_ASSOC);
// Assign $row as your key to access Table fields
foreach ($stmt as $row) :
echo $row['Number'] .' $row[Number] On page load (reload) get number of last row in mysql; to pass to Entry ID and rowid<br>';
$_SESSION['last_number_from_mysql'] = $row['Number'];
endforeach;
}//if( !$_POST['register'] ) {
届会(以上)
这是我遇到问题的部分//从数据库获取数字,然后与行ID(隐藏)进行比较。目的是决定是否需要记录新行或是否更新现有行。代码在$\u POST上执行。因此必须定义$row_id(定义见上文)
if( $_POST['register'] ) {
如果用户仅单击按钮,则执行代码
echo $row_id1 .' row_id1 before select Number where Number is $row_id1<br>';
这是要检查的。我看到了第1排的数字;这意味着号码已收到。就在下面,你想用它吗
$stmt = $db->prepare("SELECT Number FROM 2_1_journal WHERE Number = :Number1");
$stmt->bindParam(':Number1', $row_id1);
$stmt->execute();
echo $Number1 = $stmt->fetchColumn() .' $Number1<br>';
这个回声只有当2次点击按钮
这里是html输入
<input type="tex" name="row_id1" id="row_id1" value="
<?php
//if( ($_POST['register']) === 'Save draft' ) {
//echo $_POST['row_id1'];
//}
//else {
echo ($_SESSION['last_number_from_mysql'] + 1);
//}
?>
">
尝试
echo $Number1['Number'] .'<br>';
第一次改变
$Number1 = $stmt->fetchAll(PDO::FETCH_ASSOC);
到
$Number1 = $stmt->fetch(PDO::FETCH_ASSOC);
因为我相信你只找回了一排。。
你会得到你的号码
echo $Number1['Number']
丁斯
您必须根据所需的结果使用fetch函数。
>
如果需要单个标量值,则不需要列名:
$Number1 = $stmt->fetchColumn();
如果要返回多个结果,但每行只有一列,则无需再次输入列名:
$numbers = $sth->fetchAll(PDO::FETCH_COLUMN);
它将返回一个数字数组。
如果需要具有多个值的单行,则使用getch()
如果需要行数组,请使用fetchAll()
问题内容: 给出以下表1: 和Table2包含一些RefID和intVals,例如 需要SQL语句来获取每个RefID和NULL的下一个更大的intValue(如果在表1中找不到),则以下是预期结果 帮助将不胜感激! 问题答案: 派生表从给定的表1和表2检索最小值。外部查询仅检索someValue。 这是带有现场测试的Sql Fiddle。
有两类: 和 null UPD:这个问题在这里也回答了:静态和非静态字段,因为我不能删除我回答的一个
问题内容: 所以我想知道当在多个php文件中使用变量名时,是否有可能从特定的php文件中获取变量。一个例子是这样的: page1.php有 page2.php有 footer.php应该有 好的,这个例子有点抽象,但是就我所能讲的那么短。我想你明白我的意思!这就是我追求的页脚!有什么解决办法吗? 问题答案: 您可以,但是最后一个include中的变量将覆盖第一个中的变量: myfile.php m
我想获取所选框的值,并将其保存在PHP变量中。我想保存并回显变量。请帮忙
主类: